Sobes.tech
Junior — Middle

Welke mechanismen voor thread-synchronisatie ken je en kun je gebruiken in je projecten?

sobes.tech AI

Antwoord van AI

In C# worden verschillende mechanismen gebruikt voor thread-synchronisatie:

  • lock — eenvoudige manier om een kritisch codegedeelte te blokkeren.
  • Mutex — interprocesblokering, handig wanneer je toegang tussen verschillende processen wilt synchroniseren.
  • Semaphore en SemaphoreSlim — beperken het aantal threads dat tegelijkertijd een bepaald codegedeelte uitvoert.
  • Monitor — een flexibelere mechanisme waarop lock is gebaseerd.
  • ManualResetEvent en AutoResetEvent — voor signaal tussen threads.
  • Concurrerende collecties uit de namespace System.Collections.Concurrent — zorgen voor thread-veilige toegang tot collecties.

Voorbeeld van het gebruik van lock:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock(_lockObj)
    {
        // Kritisch gedeelte
        counter++;
    }
}