Re: Timermodul Kategorie: Programmierung (von krassos - 13.11.2004 7:42) | ||
Als Antwort auf Re: Timermodul von reneforster - 12.11.2004 21:59 | ||
| ||
> Hallo Thomas, > > > In irgendeinem Thread hier habe ich gelesen, dass es besser ist längere Pausen über den Timer > > zu realisieren als sleep (grosserWert); zu verwenden. Kann ich zwar nicht > > nachvollziehen, glaube ich dann aber gerne. > > Das liegt daran, das beim Sleep der tread aktiv bleibt und dabei eigentlich unnötigt andere ausbremst. > Beim Timer liegt die Steuerung im Hintergrund. > > Oder nochmal so: > Also nochmal etwas verständlicher - beim Sleep arbeitet der Tread seine 32 VMC ( bei Standart Prio ) > trotzdem ab und blockiert damit unnötigt die wartenden Treads. > Beim Timer kommt die VMC vorbei, schaut ob der Wert erreicht ist, und falls nicht geht die > Abarbeitung sofort an den nächsten Thread weiter. > > Ich hoffe ich liege richtig . . . > 'n Morgen, genau umgekehrt ists richtig. sleep gibt, solange die Zeit noch nicht verstrichen ist die Bearbeitung sofort an den nächsten Thread weiter. D.H. der Thread, der auf irgendein sleep wartet ist während dieser Zeit nicht ansprechbar. Gleichzeitig ablaufende Abfragen/Abhängigkeiten mü�ten in einen anderen Thread. Ich bin immer bemüht, die Threadanzahl nicht unnötig hoch zu treiben, wegen simpler Abfragen. Beispiel ACU's Roboterprojekt: Mit dem Code den er zuletzt gepostet hat, soll sein Roboter Ausweichen, wenn ein Hindernis auftaucht. Das ganze ist mit sleeps realisiert. Der Robbi weicht also nach rechtsz.B. aus und während des ausweichens steht plötzlich in dieser Richtung auch ein Hindernis (mein Fu� *eg*). Was passiert: Weil der Ausweichthread sich selbst während einer Aktion schlafen legt, also sleept, ändern sich die Vorraussetzungen. ACU bräuchte jetzt 'nen zweiten Thread, der den ersten überwacht. Wäre doch blödsinnig oder? Gru� krassos | ||
Antwort schreiben Antworten: |