Чем отличается мьютекс от семафора?
— Семафор может принимать любое неотрицательное целое значение, мьютекс — только 0 или 1.
— Семафор используется для синхронизации потоков и ограничения доступа к общим ресурсам. Мьютекс — только для взаимного исключения потоков.
— Операции с семафором: wait/signal. С мьютексом: lock/unlock.
— Ожидание семафора можно прервать. Блокировка мьютекса — непрерывная.
— Семафоры можно использовать для реализации ограниченных ресурсов, счетчиков, барьеров. Мьютексы — только для взаимного исключения.
— Мьютекс может быть рекурсивным, семафор — нет.
— Использование семафора часто требует больше кода и аккуратности чем мьютекса.
— Семафор может принимать любое неотрицательное целое значение, мьютекс — только 0 или 1.
— Семафор используется для синхронизации потоков и ограничения доступа к общим ресурсам. Мьютекс — только для взаимного исключения потоков.
— Операции с семафором: wait/signal. С мьютексом: lock/unlock.
— Ожидание семафора можно прервать. Блокировка мьютекса — непрерывная.
— Семафоры можно использовать для реализации ограниченных ресурсов, счетчиков, барьеров. Мьютексы — только для взаимного исключения.
— Мьютекс может быть рекурсивным, семафор — нет.
— Использование семафора часто требует больше кода и аккуратности чем мьютекса.