Sobes.tech
Junior — Middle

Ar galite pateikti pavyzdį situacijos, kai sistemoje įvyksta išteklių tarpusavio blokavimas?

sobes.tech AI

Atsakymas iš AI

Daugialūkis (deadlock) įvyksta, kai du arba daugiau procesų (arba gijų) laukia vienas kito, laikydami išteklius, kurie yra reikalingi kitiems tęsti darbą.

Pavyzdys:

  • Gija A įgyja išteklių 1 ir bando gauti išteklių 2.
  • Gija B įgyja išteklių 2 ir bando gauti išteklių 1.

Abu gijos laukia, kol kitas išlaisvins išteklius, ir nė viena negali tęsti.

iOS tai gali įvykti, pavyzdžiui, naudojant kelis užraktus (locks) ar eilutes, kai išteklių įsigijimo tvarka nėra kontroliuojama. Norint išvengti deadlock'ų, svarbu laikytis išteklių įsigijimo tvarkos arba naudoti laiko limitus ir kitus sinchronizacijos mechanizmus.