Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: threads Kategorie: Programmierung (von nitraM - 11.11.2010 9:36)
Als Antwort auf Re: threads von ChristianS - 10.11.2010 20:17
Ich nutze:
C164CI-ControllerBoard, eigenes Board, OSOPT V3.0, OSOPT V3.1
> Hallo,
> eine Frage zu threads habe ich noch, das habe ich noch nicht richtig verstanden.
> Wenn ich die Proritäten von threads ändern möchte, dann starte ich die mit
>
> run <i>Priorität;</i>

>
> Wenn ich das richtig verstanden habe, ist die Std.-Prio 32. Aber was heisst das jetzt konkret?
> Habe ich sehr zeitkritische threads, wähle ich dann eine niedrige, oder eine hohe Priorität?

Halo Christian

einfach mal das Handbuch lesen... (Seite 73+)

 ...schnipp...

5.9.3 Prioritätssteuerung
Die virtuelle Maschine der C-Control II Unit stellt jedem Thread soviel Rechenkapazität zur
Verfügung, wie es seinem Prioritätswert entspricht. Ein Thread mit Priorität 32 kann genau
32 virtuelle Maschinenoperationen hintereinander ausführen, bevor ihn das System unterbricht
und der nächste Thread an der Reihe ist. Zur Orientierung: die Anweisung
a = b + c;
wird in vier virtuellen Maschinenoperationen ausgeführt, wenn a,b und c vom gleichen
numerischen Datentyp sind:
1. b auf den Stack laden
2. c auf den Stack laden
3. Addition
4. Ergebnis in a speichern

Komplexere Anweisungen sind entsprechend umfangreicher. Das System kann einen
Thread durchaus auch innerhalb einer Anweisung unterbrechen, z.B. vor der Addition im
obigen Beispiel. Da jeder Thread mit seinem eigenen Stack arbeitet, gibt es dabei keine
Probleme.

Zur �nderung der Priorität eines Threads gibt es in C2 verschiedene Schlüsselworte.
â?¢ run

Das Schlüsselwort run wird in zwei Formen verwendet. Form 1 setzt die Priorität des angegebenen
Threads auf den Standardwert 32. Diese Form dient in der Regel dazu, um von
main-Threads aus andere Threads zu starten. Form 2 setzt die Priorität des aktuell ausgeführten
Threads auf das Ergebnis des angegebenen numerischen Ausdrucks.

Form 1:
run ThreadName;
z.B.:
run blink2;

Form 2:
run numerischer Ausdruck;
z.B.:
run 100;
Beachten Sie, da� ein stillstehender Thread (Priorität 0) sich niemals mit run selbst starten kann!

                                                  ...schnapp...

nitraM


    Antwort schreiben


Antworten:

Re: threads (von ChristianS - 11.11.2010 20:43)
    Re: threads (von nitraM - 12.11.2010 7:53)