Junior — Middle
Jaka jest minimalna liczba wątków potrzebnych do wystąpienia zakleszczenia (Deadlock)?
sobes.tech AI
Odpowiedź od AI
Minimalna liczba wątków potrzebnych do wystąpienia zakleszczenia (Deadlock) to dwa.
Zakleszczenie występuje, gdy dwa lub więcej wątków jednocześnie utrzymuje zasoby i każdy z nich oczekuje na zwolnienie zasobu, który jest zajęty przez inny wątek. Na przykład:
- Wątek A blokuje zasób 1 i oczekuje na zasób 2.
- Wątek B blokuje zasób 2 i oczekuje na zasób 1.
Oba wątki są uwięzione na zawsze, ponieważ każdy oczekuje na zwolnienie zasobu, który jest zajęty przez inny.
Przykład w pseudokodzie:
// Wątek 1
lock(zasób1)
wait()
lock(zasób2)
// Wątek 2
lock(zasób2)
wait()
lock(zasób1)
Tak więc, do deadlocka wystarczą dwa wątki i dwa zasoby.