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