Junior — Middle
Kunt u uitleggen wat een mutex (mutual exclusion mechanism) is en hoe het werkt om gelijktijdige toegang tot bronnen te voorkomen?
sobes.tech AI
Antwoord van AI
Механизм взаимного исключения (Mutex) — это способ синхронизации, который гарантирует, что в каждый момент времени только один поток или процесс может получить доступ к общему ресурсу.
Как работает:
- Mutex предоставляет блокировку, которую поток должен захватить перед использованием ресурса.
- Если другой поток уже захватил mutex, последующие потоки будут ждать освобождения.
- После завершения работы с ресурсом поток освобождает mutex, позволяя другим получить доступ.
Это предотвращает состояния гонки и обеспечивает целостность данных при параллельном доступе.
Пример на Swift (iOS):
let mutex = DispatchSemaphore(value: 1)
func accessResource() {
mutex.wait() // захват mutex
// работа с общим ресурсом
mutex.signal() // освобождение mutex
}
Здесь DispatchSemaphore с начальным значением 1 действует как mutex.