Sobes.tech
Back to questions
Junior — Middle
67

Можешь перечислить основные механизмы синхронизации потоков и процессов?

Companies where asked
Бренд Монитор

Answer from AI

sobes.tech AI

Основные механизмы синхронизации потоков и процессов в C# включают:

  • lock — обеспечивает эксклюзивный доступ к ресурсу, блокируя участок кода для других потоков.
  • Mutex — межпроцессный механизм блокировки, позволяющий синхронизировать доступ между разными процессами.
  • Semaphore и SemaphoreSlim — ограничивают количество потоков, которые могут одновременно получить доступ к ресурсу.
  • Monitor — более гибкий механизм блокировки с возможностью ожидания и уведомления потоков.
  • AutoResetEvent и ManualResetEvent — позволяют потокам ожидать сигнала для продолжения работы.
  • Interlocked — предоставляет атомарные операции над переменными для предотвращения гонок.

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

private readonly object _locker = new object();

void IncrementCounter()
{
    lock (_locker)
    {
        // критическая секция
        counter++;
    }
}