Sobes.tech
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++;
    }
}