Является ли sync.Map атомарным?В основном я имею в виду Load, Store, LoadOrStore, Delete - PullRequest
0 голосов
/ 31 мая 2018

Под плиткой я имею в виду пакет Go sync.Map , можно ли считать его функции атомарными?В основном это функции Load, Store, LoadOrStore и Delete.

Я также создаю простой пример go игровая площадка , гарантированно, что в него может войти только одна программадиапазон кодов строка 15 - 17 ?Поскольку мой тест кажется гарантированным.

Пожалуйста, помогите объяснить.

1 Ответ

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

Страница godoc для пакета синхронизации гласит: «Карта похожа на Go map[interface{}]interface{}, но безопасна для одновременного использования несколькими программами без дополнительной блокировки или координации».

ЭтоЗаявление гарантирует, что нет необходимости в дополнительных мьютексах или синхронизации между программами.Я бы не назвал это утверждение «атомарным» (что имеет очень точное значение), но это действительно означает, что вам не нужно беспокоиться о возможности множественных программ войти в блок LoadOrStore (с тем же ключом), какв вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...