Sobes.tech
Junior — Middle

Aký je minimálny počet vlákien potrebný na vznik vzájomného zablokovania (Deadlock)?

sobes.tech AI

Odpoveď od AI

Minimálny počet vlákien potrebných na vznik vzájomného zablokovania (Deadlock) je dva.

Vzájomné zablokovanie nastáva, keď dve alebo viac vlákien súčasne držia zdroje a každé z nich čaká na uvoľnenie zdroja, ktorý je držaný iným vláknom. Napríklad:

  • Vlákno A zablokuje zdroj 1 a čaká na zdroj 2.
  • Vlákno B zablokuje zdroj 2 a čaká na zdroj 1.

Obe vlákna sú navždy zablokované, pretože každé čaká na uvoľnenie zdroja, ktorý drží iné vlákno.

Príklad v pseudokóde:

// Vlákno 1
lock(zdroj1)
wait()
lock(zdroj2)

// Vlákno 2
lock(zdroj2)
wait()
lock(zdroj1)

Pre deadlock stačia dve vlákna a dva zdroje.