Sobes.tech
Junior — Middle
139

¿En qué se diferencia el uso de un semáforo de un mutex en la sincronización de hilos?

Empresas donde se preguntó
КасперскийКасперский

Respuesta de la IA

sobes.tech AI

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

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

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

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

Пример:

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

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