горутине я периодически читаю и пишу в это поле.
Также на какой-то стадии приложения у меня запускается другая горутина, в которой, по завершении 10 секунд также изменяется поле state у определённого юзера.
Тут может быть состояние гонки. Я правильно понимаю, что тут лучший вариант создать функцию SetState(state) и обложить её мютаксами или лучше как-то по другому?
На чтение мьютекс не нужен
Если синхронность нужна, то можно и чтение обложить
А что будет если приложение аварийно завершится? Состояние будет полностью утеряно и с какого места придется начинать заново?
И как это будет работать? Смысл блокировать переменную в момент чтения?
Что будет, когда чтение без мутекса и запись с мутексом встретяться?
Тогда будет гонка все равно
чем атомарные операции не подходят?
Если аварийно завершится, то нет проблемы. А вы какой-то определённый случай рассматриваете, где понадобится хитрое решение и нужен будет не мютекс?
Да, в целом подходят. Если у меня у состояния свой тип, правда тоже интовый, сработает?
Обсуждают сегодня