Sobes.tech
Back to questions
Middle+
7

В чём разница между mutex и семафором? Как они реализованы?

Companies where asked
YadroYadro

Answer from AI

sobes.tech AI

Mutex (взаимное исключение) и семафор — это механизмы синхронизации, но с разными целями и поведением:

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

Реализация:

  • Mutex обычно реализуется через атомарные операции и блокировки ядра ОС, обеспечивая эксклюзивный доступ.
  • Семафор хранит счётчик, который уменьшается при захвате и увеличивается при освобождении. Если счётчик равен нулю, потоки блокируются до освобождения.

Пример: mutex — дверь с одним ключом, семафор — комната с несколькими стульями, куда могут войти ограниченное число людей.