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++;
}
}