Junior — Middle
O'zaro chiqarish (Mutex) nima va qanday ishlashini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Mutual exclusion (Mutex) — bu sinxronizatsiya mexanizmi bo‘lib, u shartda faqat bitta gorutina (ip) ma'lum bir resurs yoki kodning kritik bo‘limiga kirish huquqiga ega bo‘lishini kafolatlaydi.
Go tilida bu uchun sync.Mutex turi ishlatiladi. Gorutina Lock() chaqirganda, u mutexni bloklaydi, va boshqa gorutinlar Lock() chaqirishga harakat qilganda, ular mutex Unlock() bilan ochilguncha kutishadi.
Misol:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Bu misolda, increment counter qiymatini xavfsiz tarzda oshiradi, bir nechta gorutinlarning bir vaqtning o‘zida kirishini oldini oladi.