Junior — Middle
Quels mécanismes de synchronisation de threads connaissez-vous et pouvez-vous utiliser dans vos projets?
sobes.tech IA
Réponse de l'IA
En C#, divers mécanismes sont utilisés pour la synchronisation des threads :
- lock — méthode simple pour bloquer une section critique du code.
- Mutex — verrou inter-processus, utile pour synchroniser l'accès entre différents processus.
- Semaphore et SemaphoreSlim — permettent de limiter le nombre de threads exécutant une section de code spécifique en même temps.
- Monitor — mécanisme plus flexible, sur lequel repose lock.
- ManualResetEvent et AutoResetEvent — pour la signalisation entre threads.
- Collections concurrentes du namespace System.Collections.Concurrent — assurent un accès thread-safe aux collections.
Exemple d'utilisation de lock :
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock(_lockObj)
{
// Section critique
counter++;
}
}