Sobes.tech
Junior — Middle

Pouvez-vous énumérer les primitives de synchronisation principales fournies par la bibliothèque standard?

sobes.tech IA

Réponse de l'IA

Dans la bibliothèque standard de C# (dans l'espace de noms System.Threading), les primitives de synchronisation principales suivantes sont disponibles:

  • lock (Monitor) — assure un accès exclusif à une ressource, en bloquant une section de code.
  • Mutex — un mutex inter-processus, utilisé pour la synchronisation entre processus.
  • Semaphore et SemaphoreSlim — limitent le nombre de threads pouvant accéder simultanément à une ressource.
  • AutoResetEvent et ManualResetEvent — événements pour la signalisation entre threads.
  • ReaderWriterLockSlim — permet à plusieurs threads de lire une ressource simultanément, mais bloque l'écriture.
  • SpinLock — une primitive légère pour de courtes verrouillages sans changement de contexte.

Exemple d'utilisation de lock:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // code qui doit être exécuté par un seul thread à la fois
    }
}