Sobes.tech
Junior — Middle

Qanday farq bor oddiy blokirovka va rekursiv blokirovka o'rtasida iplar sinxronizatsiyasida?

sobes.tech AI

AIdan javob

Oddiy blokirovka (mutex) bir oqimga resursni egallash imkonini beradi, va agar aynan shunday oqim uni yana egallashga harakat qilsa, u bloklanadi, bu esa o'zaro bloklanishga (deadlock) olib keladi.

Rekursiv blokirovka (recursive mutex) shundan farq qiladiki, aynan shunday oqim uni ketma-ket bir necha marta egallashi mumkin, bloklanmasdan. Biroq, blokirovka egallangan miqdorda bo'lishi kerak, shunda boshqa oqimlar unga kirish imkoniga ega bo'ladi.

Misol:

  • Oddiy blokirovka:

    • A oqimi blokirovkani egallaydi.
    • A oqimi uni yana egallashga harakat qiladi — doimiy ravishda bloklanadi.
  • Rekursiv blokirovka:

    • A oqimi blokirovkani egallaydi.
    • A uni yana egallaydi — muvaffaqiyatli.
    • A oqimi blokirovkani ikki marta bo'shatadi, shundan so'ng u boshqa oqimlar uchun ochiq bo'ladi.