Sobes.tech
Middle+
46

Was ist der Unterschied zwischen Mutex und Semaphore? Wie werden sie implementiert?

Unternehmen wurden gefragt
YadroYadro

Antwort von AI

sobes.tech KI

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

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

Реализация:

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

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