Sobes.tech
Junior — Middle
81

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

Компании, где спрашивали
Бренд Монитор

Ответ от нейросети

sobes.tech AI

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

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

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

private readonly object _locker = new object();

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