Sobes.tech
Назад к вопросам
Junior — Middle
106

Чем отличается использование семафора от мьютекса при синхронизации потоков?

Компании, где спрашивали
КасперскийКасперский

Ответ от нейросети

sobes.tech AI

Мьютекс (mutex) — это примитив синхронизации, который обеспечивает эксклюзивный доступ к ресурсу: в один момент времени только один поток может владеть мьютексом.

Семафор — более общий примитив, который позволяет ограничить количество потоков, одновременно получающих доступ к ресурсу. Значение семафора — это счетчик разрешений.

Основные отличия:

  • Мьютекс — это семафор с максимальным значением 1.
  • Мьютекс обеспечивает взаимное исключение, семафор — ограничение параллелизма.

Пример:

  • Мьютекс используется для защиты критической секции, чтобы только один поток её выполнял.
  • Семафор может использоваться для ограничения количества потоков, одновременно работающих с пулом соединений (например, максимум 5).

Таким образом, мьютекс — частный случай семафора с одним разрешением.