Sobes.tech
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
}