в горутине по значениям map, переданном по указателю так:
`for a := range *b` где b - map
и в процессе работы, после начала итераций в b изменится условно 10й эелемент, до которого цикл еще не успел дойти, то какое значение примет a, когда доберется до 10го элемента? То, что было в момент начала цикла, или измененное?
Т.е. вопрос сводится к тому, создается ли при получении значения по указателю копия содержимого памяти по указателю, или обход как-бы "динамический"?
Мапа сама по себе указатель, если я правильно помню, все действия с мапой отражаются сразу везде, так что в а будет новое значение
Тут может быть гонка если не защититься
Стоит поставить флаг-локер на изменение? Через chan должно быть можно, если верно понимаю
Так, а теперь уже я не понял
Засинкать запись-чтение между горутинами
Обсуждают сегодня