Задать вопрос
VGrabko
@VGrabko
Golang, Php, Js

Возможно ли повесить блокировку sync на структуру?

Я когда то видел что можно сделать блокировку на чтение/запись прям в структуре и тогда переменная которая будет иметь тип структуры всегда будет потокобезопасной. Как это сделать?
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Оценить Комментировать
Решение пользователя Vaavaan К ответам на вопрос (2)
@Vaavaan
Не в Go.
В Go ты это должен явно проверять.

Можешь повесить Mutex внутрь, но проверять его все равно нужно. Внутри рядом с данными он, возможно, удобно хранится. Только и всего. Он автоматически работать не будет.

Можешь использовать lock-free идеологию. Тогда ничего сохранять не нужно. А сами данные и будут блокирующими элементами. Но и в этом случае нужно явно проверять их. Это пакет atomic в Go.

А вот если ты положишь структуру в канал, то тут да, тут ты получишь потокобезопасность. Но это не совсем то, что ты описал.
Ответ написан
Комментировать