[so] Detectare terminare thread

Razvan Crainea razvan.crainea at gmail.com
Tue May 7 18:33:17 EEST 2013


2013/5/7 Radu Stancu <stancumradu at gmail.com>:
> Salut,
> Cum pot sa determin ca un thread s-a terminat inainte sa ii expire cuanta?
> De exemplu, la testul 4 se creeaza n-1 threaduri, dar cuanta este de n si mi
> se blocheaza programul la join pentru ca nu are cine sa trezeasca cele n-1
> threaduri (acestea asteapta la n-1 variabile de condtie, care sunt semnalate
> doar daca se termina cuanta threadului curent sau este preemptat. Cum nu se
> intampla nici unul dintre cazuri, threadurile raman blocate)
>
> Structura so_fork:
> creare thread ---- blocare intr-o functie auxiliara daca nu ruleaza
>                    handler(prio)
>                    exit
> verificare prioritati si alegerea threadului de rulat
> semnalizare thread de rulat si blocare thread curent
>

În principiu, orice thread, înainte de a elibera resursele și ceda
procesorul, trebuie să planifice următorul thread. În cazul testului
4, masterul își termină primul execuția, deci el este cel care
planifică primul următorul thread.

Cheers,
--
Răzvan Crainea


More information about the so mailing list