2010-11-22 17 views
5

No estoy del todo seguro de cuál es la mejor manera de llevar a cabo este escenario de subprocesos múltiples, por lo que cualquier entrada sería apreciada.Confusión de bloqueo de lectura/escritura

Tengo un bloque, que lee datos, que varios subprocesos pueden acceder a la vez. Tengo otro bloque que escribe datos, solo un hilo puede escribir en cualquier momento. Además, no puede comenzar a escribir, siempre y cuando cualquier hilo esté leyendo los datos. ¿Es ReaderWriterLockSlim el camino a seguir aquí, esperará a que los hilos de lectura salgan antes de bloquear el hilo para escribir?

Respuesta

5

Sí, ReaderWriterLockSlim es perfecto para escenarios de lectura frecuente/lectura poco frecuente.

El comportamiento es como usted adivinó: solo escritor único, los escritores bloquean hasta que todos los lectores terminen, los lectores no pueden acceder mientras el escritor está en proceso.

Tenga cuidado de que el tiempo que lleva a cabo el bloqueo (ya sea para leer o escribir) sea lo suficientemente largo como para evitar el acceso concurrente, y ya no.

+0

Muy bien, gracias! – Homde