ReaderWriterLock permite a varios subprocesos leer un recurso de forma simultánea, aunque para escribir en el recurso el subproceso debe esperar a un bloqueo exclusivo.
Dentro de la aplicación se puede utilizar un ReaderWriterLock para proporcionar una sincronización conjunta entre los subprocesos que tienen acceso a un recurso compartido. En este caso, los bloqueos se toman del mismo ReaderWriterLock. Al igual que con cualquier mecanismo de sincronización de subprocesos, se debe comprobar que ningún subproceso omite ReaderWriterLock.
De forma alternativa, se puede diseñar una clase que encapsule un recurso. Esta clase puede utilizar un ReaderWriterLock para implementar su esquema de bloqueo en el recurso. ReaderWriterLock utiliza un diseño eficaz, por lo que se puede utilizar para sincronizar objetos individuales.
Organice su aplicación con el fin de reducir al mínimo la duración de las operaciones de lectura y escritura. Las operaciones de escritura de larga duración afectan negativamente al rendimiento porque el bloqueo de escritura es exclusivo. Las operaciones de lectura de larga duración bloquean el sistema de escritura en espera y si hay al menos un subproceso en espera de bloqueo de escritura, entonces los subprocesos que soliciten nuevos bloqueos de lectura también se bloquearán.
Vea también