Junior — Middle
Можеш ли да набројиш главне механизме синхронизације нитки и процеса?
sobes.tech АИ
Одговор од АИ
Основни механизми за синхронизацију нитева и процеса у C# укључују:
- lock — обезбеђује ексклузивни приступ ресурсу, блокирајући део кода за друге нитеве.
- Mutex — механизам за блокирање између процеса, који омогућава синхронизацију приступа између различитих процеса.
- Semaphore и SemaphoreSlim — ограничавају број нитева који могу истовремено приступити ресурсу.
- Monitor — флексибилнији механизам за блокирање са могућношћу чекања и обавештавања нитева.
- AutoResetEvent и ManualResetEvent — омогућавају нитевима да чекају сигнал за наставак рада.
- Interlocked — пружа атомске операције над променљивим за спречавање трка.
Пример коришћења lock:
private readonly object _locker = new object();
void IncrementCounter()
{
lock (_locker)
{
// критична секција
counter++;
}
}