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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

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

Реализация:

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

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее