Ответы пользователя по тегу Синхронизация данных
  • Почему меняется работа RWMutex в зависимости от его расположения в коде?

    @Wirusnyy-chel
    У вас в обоих случаях mutex защищает только от одновременной записи и чтения из переменной. Фактически порядок вывода не зависит от этого мьютекса, можете убедиться в этом если запустите исполнение несколько раз или добавите разные слипы в горутинах чтения и записи.

    Если необходимо синхронизировать потоки записи и чтения лучше использовать каналы.

    Как упражнение на mutex могу предложить следующее:
    Задать структуру с двумя переменными: где значение первой переменной зависит от второй. Если параллельно обновлять и читать значения можно увидеть следующее:
    Без мьютекса чтение может иногда возвращать несогласованное значение между переменными.
    С мьютексом значение при чтении будет всегда согласованным.

    P.S. В вашем примере для синхронизации переменных достаточно обычного мьютекса. RWMutex будет полезен если читателей больше одного.
    Ответ написан
    4 комментария