Back to questions
Yadro
Middle+
7
В чём разница между mutex и семафором? Как они реализованы?
Companies where asked
Answer from AI
sobes.tech AI
Mutex (взаимное исключение) и семафор — это механизмы синхронизации, но с разными целями и поведением:
- Mutex — это бинарный замок, который позволяет в каждый момент времени владеть ресурсом только одному потоку. Используется для защиты критической секции.
- Семафор — счётчик, который ограничивает количество потоков, одновременно получающих доступ к ресурсу. Может быть с произвольным числом разрешений.
Реализация:
- Mutex обычно реализуется через атомарные операции и блокировки ядра ОС, обеспечивая эксклюзивный доступ.
- Семафор хранит счётчик, который уменьшается при захвате и увеличивается при освобождении. Если счётчик равен нулю, потоки блокируются до освобождения.
Пример: mutex — дверь с одним ключом, семафор — комната с несколькими стульями, куда могут войти ограниченное число людей.