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