Sobes.tech
Junior — Middle

Можеш ли да изброиш основните механизми за синхронизация на нишки и процеси?

sobes.tech AI

Отговор от AI

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

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

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

private readonly object _locker = new object();

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