Junior — Middle
Kui palju niite on vaja, et tekiks vastastikune lukustamine (Deadlock)?
sobes.tech AI
Vastus AI-lt
Minimaalne niitide arv, mis on vajalikks deadlocki tekkeks, on kaks.
Deadlock tekib siis, kui kaks või enam niiti hoiab samaaegselt ressursse ja igaüks ootab teise niidi poolt hoitava ressursi vabastamist. Näiteks:
- Niit A lukustab ressursi 1 ja ootab ressursi 2.
- Niit B lukustab ressursi 2 ja ootab ressursi 1.
Mõlemad niidid jäävad igaveseks lukustatud, kuna igaüks ootab teise niidi poolt hoitava ressursi vabastamist.
Näide pseudokoodis:
// Niit 1
lock(ressurss1)
wait()
lock(ressurss2)
// Niit 2
lock(ressurss2)
wait()
lock(ressurss1)
Seega, deadlocki jaoks piisab kahest niidist ja kahest ressursist.