Girdonцитирует3 дня назад
Тип sync.RWMutex
Тип данных sync.RWMutex является улучшенной версией sync.Mutex и опре­деляется в файле rwmutex.go каталога sync стандартной библиотеки Go следующим образом:

type RWMutex struct {

w Mutex

writerSem uint32

readerSem uint32

readerCount int32

readerWait int32

}

Другими словами, sync.RWMutex основан на sync.Mutex и имеет необходимые дополнения и улучшения. Вы можете спросить, а как sync.RWMutex улучшает sync.Mutex? Хотя одной функции разрешено выполнять операции записи с мьютексом sync.RWMutex, у вас может быть несколько считывателей, владеющих мьютексом sync.RWMutex. Это означает, что операции чтения с помощью sync.RWMutex обычно выполняются быстрее. Тем не менее есть одна важная деталь, о которой следует знать: пока все считыватели мьютекса sync.RWMutex не разблокируют его, вы не сможете заблокировать его для записи. Такова небольшая цена, которую нам придется платить за повышение производительности‚ получаемое за счет возможности иметь несколько считывателей.
  • Войти или зарегистрироваться, чтобы комментировать