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.