Middle
Mutex nima?
sobes.tech AI
AIdan javob
Mutex (mutual exclusion) — bu Go'da sinxronizatsiya mexanizmi bo'lib, u umumiy resurslarga, masalan, o'zgaruvchilar yoki ma'lumotlar tuzilmalariga bir vaqtning o'zida bir nechta goroutinlarning kirishini oldini oladi. Mutex har bir vaqtda faqat bitta goroutinning blokni egallashiga va kritik bo'limni bajarishiga imkon beradi.
Go'da sync.Mutex dan foydalanish misoli:
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
counter := 0
increment := func() {
mu.Lock() // blokni egallash
defer mu.Unlock() // blokni bo'shatish
counter++
}
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
defer wg.Done()
increment()
}()
}
wg.Wait()
fmt.Println("Counter:", counter)
}
Mutex bo'lmasa, natija noto'g'ri bo'lishi mumkin, chunki raqobat sharoitlari yuzaga keladi.