RWMutex содержит обычный Mutex, семафоры для читателей и писателей, и счётчики. Читатели инкрементят счётчик атомарно. Когда приходит писатель, он вычитает rwmutexMaxReaders из счётчика, делая его отрицательным — новые читатели блокируются. Писатель ждёт пока существующие читатели закончат, потом берёт лок.
Как работает sync.RWMutex на низком уровне?
Senior
112 просмотровAFK Offer AI
Как сделать zero-copy конвертацию string в []byte?