Een thread die moet wachten, voert de aanwijzing Thread_Wait uit met een signaalnummer.
De toestand van de thread wordt op wachtend gezet. Dit betekent dat deze thread bij een
mogelijke wisseling van thread overgeslagen wordt. Als de andere thread zijn kritische werk
beëindigd heeft, geeft hij het commando Thread_Signal met hetzelfde signaalnummer dat de
andere thread voor Thread_Wait gebruikt heeft. De thread –toestand van de wachtende
thread verandert dan van wachtend in inactief. Nu wordt hij bij een mogelijke thread
wisseling weer "meegenomen".
Deadlocks
Als alle threads zich in een wachttoestand begeven met
meer die de andere threads uit de wachtende toestand zou kunnen bevrijden. Deze
constellaties dient u bij de programmering te vermijden.
Tabel thread –toestanden
Toestand Betekenis
actief
De thread wordt op dit moment bewerkt
inactief
Kan na een thread wisseling weer geactiveerd worden
slapend
Wordt na een aantal ticks weer op "inactief" gezet
wachtend De thread wacht op een signaal
5.3.15.1
Thread_Cycles
Thread functies
Syntax
void Thread_Cycles(byte
Beschrijving
Zet het aantal bytecode instructies tot aan de volgende thread -wisseling op cycles.
Als een thread nieuw gestart wordt, krijgt hij steeds het aantal cycli toegewezen die in de
projectopties gedefinieerd zijn. Het heeft dus alleen maar zin om Thread_Cycles() op te
roepen nadat een thread gestart is.
Parameters
thread
(0-15) nummer van de thread waarvan de cyclus veranderd moet worden
cycles
aantal cycli tot aan het wisselen van de thread
thread,
word cycles);
Thread
Wait, dan is er geen thread
99