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