Junior — Middle
Go стандарт китепканасында кайсы түрдөгү өз ара чыгарылуулар (Mutex) ишке ашырылган?
sobes.tech AI
AIден жооп
Go стандарттык китепканасында негизги өз ара чыгаруу тиби — sync.Mutex ишке ашырылган. Бул жөнөкөй мютекс, ал коддун сыналган бөлүмдөрүн бир убакта кирүүдөн коргоо үчүн блоктоо жана ачуу камсыздайт.
Мындан тышкары, sync.RWMutex бар — мютексинин кеңейтилинген версиясы, ал бир нече окуучуларга бир убакта блокту кармоого мүмкүндүк берет, бирок жазуу эксклюзивдүү блоктолот.
sync.Mutex колдонуу мисалы:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Жана sync.RWMutex менен мисал:
var rwMu sync.RWMutex
var data int
func readData() int {
rwMu.RLock()
defer rwMu.RUnlock()
return data
}
func writeData(val int) {
rwMu.Lock()
defer rwMu.Unlock()
data = val
}