Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > > 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 > > > <code> > > > run <i>Priorität;</i></code> > > > > > > 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 > > Hallo nitraM, > das Handbuch hatte ich schon gelesen, allerdings ist mir das immer noch nicht ganz klar. > Heisst das jetzt, dass ich für zeitkritische Routinen viel Rechenzeit brauche und einen hohen > nummerischen Wert verwende, und für eine einfache, unwichtige Routine halt einen niedrigen Wert? > z.B. run 5 und der thread dümplet vor sich hin. Hast Du Erfahrungen mit den Werten? > Meinem IR thread gebe ich ein run 100 und meinem sekundengenauen Timer den Wert 10? Oder muss > man das einfach ausprobieren. Was macht man, wenn man 20 unkritische threads hat und 5 > zeitkritsche? Gibt man dann 20 mal die Prio 5 und 5 mal die Prio 100? Oder staffelt man das. > Wie gesagt, dass krieg ich irgendwie nicht auf die Kette... > ChristianS.