Sobes.tech
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.