Sobes.tech
Junior — Middle

Мумкинӣ шарҳ диҳед, ки кадом намудҳои бастан вуҷуд доранд ва онҳо дар барномасозии бисёрсӯрона чӣ гуна кор мекунанд?

sobes.tech AI

Ҷавоб аз AI

Дар многопоточном программировании мавҷуданд намудҳои гуногуни бастагиҳо, ки кӯмак мекунанд, ки дастрасӣ ба захираҳои умумӣ ҳамоҳанг карда шавад:

  • Мьютекс (Mutex) — дастрасии истисноиро ба захира таъмин мекунад. Танҳо як ҷараён метавонад дар як вақт мьютексро ба даст орад.
  • Мьютекси такрорӣ — имкон медиҳад, ки ҳамон ҷараён блокро чанд маротиба ба даст орад, бидуни монеа шудан.
  • Блоки хондан-навишт (Read-Write Lock) — ба чанд ҷараён имкон медиҳад, ки ҳамзамон захираро бихонанд, аммо навишт танҳо ба таври истисноӣ имконпазир аст.
  • Семафор — шумораи ҷараёнҳоро маҳдуд мекунад, ки метавонанд ҳамзамон ба захира дастрасӣ пайдо кунанд.
  • Spinlock (тамом кардани фаъол) — ҷараён дар давр санҷиш мекунад, ки оё блок дастрас аст, бидуни гузаштан ба ҳолати интизорӣ.

Масалан, истифодаи мьютекс дар Swift:

let lock = NSLock()

функсия criticalSection() {
    lock.lock()
    // Боби критикӣ
    lock.unlock()
}

Интихоби навъи блокировка вобаста ба вазифа ва талаботи иҷроиш ва бехатарӣ мебошад.