Мьютекс (mutex)
Суть
Mutex (mutual exclusion) — замок, который в каждый момент времени держит ровно один поток. Остальные, попытавшиеся его захватить, блокируются до unlock(). Ключевое отличие от бинарного семафора: у мьютекса есть владелец — отпустить его может только захвативший поток, а ядро умеет временно поднимать приоритет владельца (priority inheritance), чтобы высокоприоритетный ждущий поток не застрял за низкоприоритетным. Поэтому «мьютекс — вид семафора» — неточность, которую интервьюер заметит.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep