Sobes.tech
Junior — Middle

Kun je de belangrijkste mechanismen voor synchronisatie van threads en processen opsommen?

sobes.tech AI

Antwoord van AI

De belangrijkste synchronisatie-mechanismen voor threads en processen in C# omvatten:

  • lock — zorgt voor exclusieve toegang tot een bron door een codeblok te blokkeren voor andere threads.
  • Mutex — een interprocesmechanisme dat het toegangssynchronisatie tussen verschillende processen mogelijk maakt.
  • Semaphore en SemaphoreSlim — beperken het aantal threads dat gelijktijdig toegang kan krijgen tot een bron.
  • Monitor — een flexibelere vergrendelingsmechanisme met de mogelijkheid om te wachten en threads te informeren.
  • AutoResetEvent en ManualResetEvent — laten threads wachten op een signaal om door te gaan.
  • Interlocked — biedt atomische bewerkingen op variabelen om racecondities te voorkomen.

Voorbeeld van het gebruik van lock:

private readonly object _locker = new object();

void IncrementCounter()
{
    lock (_locker)
    {
        // kritieke sectie
        counter++;
    }
}