В этом посте мы обсудим, почему мы используем мьютексы в Go, и узнаем, как использовать мьютекс для блокировки данных и исправления условий гонки. Go позволяет нам одновременно запускать код с помощью горутин. Однако, когда параллельные процессы обращаются к одному и тому же фрагменту данных, это может привести к race conditions. Мьютексы — это структуры данных, предоставляемые пакетом sync . Они могут помочь нам заблокировать разные разделы данных , чтобы только одна горутина могла получить к ним доступ в каждый момент времени...
Часть 1, Часть 2 В прошлой статье мы разобрались с тем, что такое конкурентность/параллелизм и зачем нужна синхронизация. Настала пора изучить примитивы синхронизации, которые предлагает нам стандартная библиотека шаблонов C++. Первым из них будет std::mutex. Но сначала ознакомьтесь с картой статьи (она пригодится, если вы вдруг запутаетесь). Итак, начнём. Что такое мьютекс? Мьютекс (англ. mutex, от mutual exclusion — «взаимное исключение») — это базовый механизм синхронизации. Он предназначен для...