Reader-Writer Locks
Réduire la table des matières
Développer la table des matières
Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Reader-Writer Locks

 

La classe ReaderWriterLockSlim permet à plusieurs threads de lire une ressource simultanément, mais nécessite qu'un thread attende un verrou exclusif afin d'écrire dans la ressource.

Dans votre application, vous pouvez utiliser un ReaderWriterLockSlim pour fournir une synchronisation coopérative parmi les threads qui accèdent à une ressource partagée. Les verrous sont pris sur le ReaderWriterLockSlim lui-même.

Comme avec tout mécanisme de synchronisation de threads, vous devez veiller à ce qu'aucun thread n'ignore le verrouillage fourni par ReaderWriterLockSlim. Une façon de garantir cela est de créer une classe qui encapsule la ressource partagée. Cette classe fournirait des membres qui accèdent à la ressource partagée privée et qui utilisent un ReaderWriterLockSlim privé pour la synchronisation. Consultez l'exemple de code indiqué pour la classe ReaderWriterLockSlim. ReaderWriterLockSlim est assez efficace pour être utilisé pour synchroniser des objets individuels.

Structurez votre application pour minimiser la durée des opérations de lecture et d'écriture. Les longues opérations d'écriture affectent le débit directement car le verrouillage en écriture est exclusif. Les longues opérations de lecture bloquent les writers en attente et, si au moins un thread est en attente d'accès en écriture, les threads qui demandent l'accès en lecture seront également bloqués.

System_CAPS_noteRemarque

Le .NET Framework a deux verrous de writer de lecteur, ReaderWriterLockSlimet ReaderWriterLock. ReaderWriterLockSlim est recommandé pout tout nouveau développement. ReaderWriterLockSlim est semblable à ReaderWriterLock, mais les règles de récurrence et de mise à niveau et rétrogradation de l'état de verrou sont simplifiées. ReaderWriterLockSlim évite de nombreux cas d'interblocage potentiel. De plus, la performance de ReaderWriterLockSlim est considérablement meilleure que ReaderWriterLock.

Afficher:
© 2016 Microsoft