Ответ 1
Примитивы синхронизации - это простые программные механизмы, предоставляемые платформой (например, операционной системой) для своих пользователей в целях поддержки синхронизации потоков или процессов. Они обычно создаются с использованием механизмов более низкого уровня (например, атомных операций, барьеров памяти, штифтов, контекстных переключателей и т.д.).
Mutex, событие, условные переменные и семафоры - все примитивы синхронизации. Так что это общие и эксклюзивные блокировки. Обычно монитор считается высокоуровневым инструментом синхронизации. Это объект, который гарантирует взаимное исключение для его методов с использованием других примитивов синхронизации (обычно это эксклюзивные блокировки с переменными состояния для поддержки ожидания и сигнализации). В некоторых контекстах, когда монитор используется как строительный блок, он также считается примитивом синхронизации.
Критический раздел не является примитивом синхронизации. Это часть пути выполнения, которая должна быть защищена от параллельного выполнения, чтобы поддерживать некоторые инварианты. Для защиты критического раздела вам нужно использовать некоторые примитивы синхронизации.