Re: Probleme beim Aufruf mehrerer Threads Kategorie: Programmierung (von Thomas Einzel - 17.04.2002 10:14) | |
Als Antwort auf Re: Probleme beim Aufruf mehrerer Threads von André H. - 16.04.2002 14:38
| |
... > Hier ein kleines Beispiel für ein Explizites capture, um zu vermeiden, > da� zwei Funktionen "gleichzeitig" aufgerufen werden. > > byte flag; > thread a > { > capture flag; > function1(x,y,z) ; > release; > } Jou, ich habe mal vor jeden Funktionsaufruf der auf das Schieberegister zugreift, capture flag und unmittelbar danach release eingefügt: so geht es! :-)) Jetzt habe ich es auch (glaube) verstanden: capture flag; sperrt die anderen Threads so lange (das) flag wieder freigegeben wird. Je nach zugewiesener (hier Standard 32) Priorität/Anzahl Operationen wird dann u.U. sofort an einen anderen Thread weitergegeben. Mit 4 parallelen Threads getestet, einer schreibt was ins LCD, zwei blinkern an LEDs herum und eine fragt Tasten ab und schaltet damit Relais an/aus. (alles nur zum Test) Besonders für die Abgabe von Rechenzeit an die anderen threads innerhalb den Blink-Threads (Pause x00 zwischen den on und off Befehlen) war die unmittelbare "Einkapselung" jedes station_io Aufrufes wichtig. Nur wenn mehrere station_io Funktionen unmittelbar nacheinander aufgerufen wurden, habe ich sie nacheinander "gewähren" lassen. *So* kann ich sie CC2 Station verwenden. > Das würde vorerst reichen, damit bei Dir der Zufallsgenerator aufhört. :-) Ja André, danke. ... > Tja, ich hab' jetzt eine halbe Stunde lang über das CTC schmunzeln müssen.:-))) > Das CTC hat eindeutig die Module nicht gemeinsam getestet, sonst > wäre das sofort aufgefallen !! Weia. > Man merkt da� Martin Förster nicht mehr für's CTC arbeitet. :-( War MaFoe nicht immer ein "Externer"? Wenn ich die Komplexität des OS der CC2, des Compilers etc.pp. betrachte, sind die hier aufgetretenden Kleinigkeiten IMO einfach nur peinlich für Conrad. BTW: die haben wohl kein Qualitätssicherungssystem? ... > Ich werde im laufe der Woche die Module patchen und dann auf > meine Site stellen. > Gut, da� ich Schieberegister auf Lager habe, dann kann ich's wenigstens > mit der Unit testen. :-)) Danke, kannst es ja ggf. ans CTC verkaufen, damit die ihre CC2St wieder verkaufen können =;-) Thomas | |
Antwort schreiben Antworten: |