Sobes.tech
Middle+

Cos'è un livelock?

sobes.tech AI

Risposta dell'AI

Stato in cui più processi cambiano continuamente il loro stato in risposta l'uno all'altro, eseguendo azioni ma senza fare progressi. Non sono bloccati, ma non possono nemmeno completare il loro lavoro.

Esempio: due persone cercano di passare in un corridoio stretto, incrociandosi continuamente invece di cedere.

Nelle applicazioni multithread, il livelock può verificarsi, ad esempio, quando i thread cercano di acquisire risorse in un ordine specifico, ma si "cedono" a vicenda ogni volta, impedendo a uno di loro di completare l'operazione.

Confronto con il deadlock:

Caratteristica Livelock Deadlock
Stato I processi sono attivi, consumano CPU I processi sono bloccati
Progresso Assente Assente
Causa Cambiamento continuo di stato Blocco reciproco delle risorse

Prevenzione: progettazione accurata della logica di interazione dei thread, uso di timeout o di un ordine deterministico nell'acquisizione delle risorse.