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