Re: Anzahl von threads Kategorie: Programmierung (von André H. - 1.11.2003 12:00) | |
Als Antwort auf Anzahl von threads von Guido - 31.10.2003 18:37
| |
Hallo Guido, > also die erste Frage wieviele threads kann man in der C2 gleichzeitig laufen lassen?? Das steht im Handbuch Kap.4.4.3 "Multithreading" Seite 40 in der Mitte. :-) > Und was passiert wenn man einen thread mehrfach startet?? Gar nichts. Im Prinzip kann man keine Threads starten oder anhalten. Man kann nur die Priorität festlegen. Alle Threads haben standardmä�ig die Prio 0, au�er Sie haben den Namen "main", dann ist die Prio standardmä�ig 32. Wenn Du jetzt einen Thread mit run threadname; "startest", so wei�t Du dem Thread lediglich die Prio 32 zu. Wenn Du nun run threadname; öfters im Code stehen hast, so wird lediglich die Prio 32 zugewiesen. Es werden also nur Resourcen zum Zuweisen der Prio vergeudet. :-) Allerdings kann ein erneutes Aufrufen von run threadname; auch fatale Folgen haben, wenn ein Thread unbedingt mit einer anderen Prio laufen mu�. Wird in einem thread mit z.B. run 50; die neue Prio festgelegt, so wird mit run threadname; diese wieder auf 32 zurückgesetzt. Und um einmal etwa tiefer in die Verwendung von run&Co zu gehen: halt; hat die gleiche Bedeutung wie run 0; resume; setzt die Prio auf den Wert vor der letzten �nderung. Wurde ein Thread z.B. angehalten, wird dieser mit der letzten Prio fortgesetzt. Oder wurde ein Thread nach dem Starten auf Prio 50 gesetzt, so führt ein Aufrufen von resume zu Prio 32. usw. Das steht auch alles im Handbuch. :-) Eine weitere Anweisung ist reset. Diese setzt den Thread zurück und gibt ihm seine Standard-Prio. Es wird dabei auch ein mögliches vom Thread gesetztes (System-)Capture wieder gelöst. (Das gilt nicht für das I²C-Capture oder die erweiterten Captures von cap.c2 !) MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | |
Antwort schreiben Antworten: Re: Anzahl von threads (von Guido - 1.11.2003 14:48) |