C# 15.2.2thread ProprietàConStati
C# 15.2.2thread ProprietàConStati
2 C# Thread
I thread C# possono trovarsi in vari stati i cui nomi sono definiti dal linguaggio. Ecco i
principali:
1. Unstarted. E' lo stato di new (non è stato ancora chiamato il metodo Start())
WaitSleepJoin
Abort
sbloccato bloccato
Abort
Unstarted Running AbortRequested
Start
ResetAbort
terminato
terminato
Stopped
Unstarted:
Running:
E' compito del S.O. assegnare la CPU ai thread. L'algoritmo di scheduling utilizzato è di
tipo preemptive (Round-Robin con code a priorità). Si parla di schedulazione preemptive.
WaitSleepJoin:
• il thread, che deteneva il lock sull'oggetto richiesto, lo rilascia. Oppure termina il timeout
impostato
Stopped:
TIPI DI THREAD
• Foreground thread
• Background thread
• fintanto che, invece, c'è almeno un foreground thread in esecuzione per un certo processo,
la CLR continua ad eseguire l'applicazione
BACKGROUND THREAD
Un thread background è un thread che ha il solo scopo di servire altri thread che
girano nello stesso processo.
a true. Così:
Il thread background viene terminato dal sistema di runtime quando tutti gli altri
thread foreground del processo sono terminati: non essendoci più nessuno da servire,
il thread background non serve più.
PRIORITA'
Attenzione però: thread a bassa priorità potrebbero non essere mai eseguiti
(starvation).