Назад к вопросам
Касперский
Junior — Middle
106
Чем отличается использование семафора от мьютекса при синхронизации потоков?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Мьютекс (mutex) — это примитив синхронизации, который обеспечивает эксклюзивный доступ к ресурсу: в один момент времени только один поток может владеть мьютексом.
Семафор — более общий примитив, который позволяет ограничить количество потоков, одновременно получающих доступ к ресурсу. Значение семафора — это счетчик разрешений.
Основные отличия:
- Мьютекс — это семафор с максимальным значением 1.
- Мьютекс обеспечивает взаимное исключение, семафор — ограничение параллелизма.
Пример:
- Мьютекс используется для защиты критической секции, чтобы только один поток её выполнял.
- Семафор может использоваться для ограничения количества потоков, одновременно работающих с пулом соединений (например, максимум 5).
Таким образом, мьютекс — частный случай семафора с одним разрешением.