'''Intent:''' Allow concurrent read access to an object but require exclusive access for write operations.

'''See also''' LockPattern, SchedulerPattern, BalkingPattern

----

Programs that have very high ReadToWriteRatio or that have read-side critical sections with very large runtimes compared to synchronization OverHead can benefit from specialized synchronization primitives that allow several ''readers'' to occupy a given critical section concurrently, but allow only one writer to do so, and cause that writer to exclude all readers.

----

It ''is'' possible for any number of readers to read the "previous version" of a data structure, while simultaneously, any number of writers are updating the data structure. But this gets complicated and tricky in a hurry. See WaitFreeSynchronization.

"DoubleBuffer''''''ing" allows any number of readers to read the "previous version" of a data structure, while simultaneously, one writer is working on updating the "current version".

----

From SynchronizationStrategies. See also: WriteYourOwnThreadingPackage

----
CategoryPattern CategoryConcurrencyPatterns