Junior — Middle
Какви задачи решава пакетът sync в езика за програмиране Go?
sobes.tech AI
Отговор от AI
Пакетът sync в езика Go предоставя примитиви за синхронизация за управление на конкурентен достъп до ресурси и координиране на горутините.
Основните задачи, които решава пакетът sync:
- Mutex (
Mutex) — за защита на критичните секции и предотвратяване на едновременен достъп до споделените данни. - RWMutex — mutex с разделяне на четене и писане, който позволява на няколко горутини да четат данни едновременно, но блокира писането.
- WaitGroup — за изчакване завършването на група горутини.
- Once — за изпълнение на инициализация само веднъж.
Пример за използване на Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
По този начин, пакетът sync помага безопасно да работите с конкуренция и да избегнете състезателни условия.