Встречается на собеседованиях • сегодня

В чем разница между Mutex и Monitor

Mutex и Monitor оба используются для синхронизации потоков, но имеют ключевые различия:

  1. Область действия
    Monitor работает только в пределах одного процесса, а Mutex может использоваться для межпроцессной синхронизации.

  2. Производительность
    Monitor (lock в C#) легче и быстрее, так как работает внутри процесса. Mutex медленнее из-за работы с ядром ОС.

  1. Использование
    Monitor используется через lock или Monitor.Enter/Exit:
csharp
object lockObj = new object();
lock(lockObj) 
{
    // критическая секция
}

Mutex требует явного создания и освобождения:

csharp
using Mutex mutex = new Mutex(false, "Global\\MyMutex");
mutex.WaitOne();
try {
    // критическая секция
}
finally {
    mutex.ReleaseMutex();
}
  1. Именование
    Mutex можно именовать для межпроцессного использования, Monitor - нет.

  2. Рекурсивность
    Оба поддерживают рекурсивные блокировки (один поток может захватывать один и тот же lock несколько раз).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы