Sobes.tech
Middle

Deadlock nima?

sobes.tech AI

AIdan javob

Deadlock (bir-birini bloklash) — ko'p ipli dasturda, ikki yoki undan ortiq iplar bir-birini doimiy ravishda bloklaydigan holat bo'lib, ular boshqa ip egallagan resurslarni ozod qilishni kutmoqda. Natijada, hech bir ip ishni davom ettira olmaydi.

Klassik deadlock holati misoli:

  • A ipi 1-resursni oladi va 2-resursni kutadi.
  • B ipi 2-resursni oladi va 1-resursni kutadi.

Ikkala ip ham doimiy ravishda bloklanadi.

Deadlocklarni oldini olish uchun quyidagilar qo'llaniladi:

  • Resurslarni olish tartibini qat'iy belgilash.
  • Bloklashni kutishda timeout qo'yish.
  • Bloklamasdan ishlovchi algoritmlardan foydalanish.

Java misoli:

synchronized(resource1) {
    synchronized(resource2) {
        // resurslar bilan ishlash
    }
}

Agar boshqa ip resurslarni teskari tartibda olishga harakat qilsa, deadlock yuzaga kelishi mumkin.