Вам когда-нибудь приходилось блокировать const с помощью блокировки мьютекса? - PullRequest
0 голосов
/ 30 мая 2018

Я программирую на ходу и использую блокировку мьютекса для блокировки определенных переменных, чтобы они не могли быть перезаписаны во время чтения.

Это заставило меня задуматься.Так как вы можете прочитать переменную несколько раз.Есть ли сценарий, в котором вам когда-нибудь придется блокировать постоянную переменную?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Если вы говорите о константах, то нет необходимости использовать подпрограммы синхронизации для доступа к ним (как подсказывает @icza).

Но если вы рассматриваете const как переменную, значение которой нельзя изменить после назначения ейзначение, то вы должны быть осторожны из-за модели памяти Голанга и происходит до отношения.

0 голосов
/ 30 мая 2018

Правило простое: если несколько процедур одновременно обращаются к переменной , и хотя бы один из обращений является записью, то требуется синхронизация.

Если мы говорим о constants , тогда переменная отсутствует, и вы не можете взять адрес константы (подробности см. Найти адрес константы в go ), поэтому невозможно изменить значения констант.

Вам не нужна синхронизация для доступа к константам из нескольких подпрограмм.

...