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

Что такое Mutex

Mutex (Mutual Exclusion) — это примитив синхронизации, который обеспечивает эксклюзивный доступ к общему ресурсу для одного потока. Используется для предотвращения race conditions.

Основные особенности:

  • Только один поток может владеть мьютесом в любой момент времени.
  • Поддерживает межпроцессную синхронизацию (в отличие от lock).
  • Реализует IDisposable, поэтому требует освобождения.

Пример использования:

csharp
using System.Threading;

class Program
{
    private static Mutex mutex = new Mutex();

    static void Main()
    {
        for (int i = 0; i < 5; i++)
        {
            new Thread(DoWork).Start();
        }
    }

    static void DoWork()
    {
        mutex.WaitOne(); // Захватываем мьютекс
        try
        {
            // Критическая секция
            Console.WriteLine($"Thread {Thread.CurrentThread.ManagedThreadId} entered");
            Thread.Sleep(1000);
        }
        finally
        {
            mutex.ReleaseMutex(); // Освобождаем мьютекс
        }
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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