Sobes.tech
Junior — Middle

Da li je moguće koristiti jednu zastavicu za upravljanje zaključavanjem Mutex-a?

sobes.tech АИ

Одговор од АИ

Не, не може да се користи један флаг за управљање блокирањем Mutex у Go-у. sync.Mutex је структура са унутрашњим стањем и не може се заменити једноставним логичким флагом, јер то неће обезбедити исправну синхронизацију између горутина.

Користећи један флаг не гарантује атомарност операција закључавања и откључавања, што може довести до стања трка и грешака.

Правилан начин је коришћење метода Lock() и Unlock() из пакета sync:

var mu sync.Mutex

mu.Lock()
// критична секција
mu.Unlock()