ReadWrite Lock
We discuss a common interview question involving synchronization of multiple reader threads and a single writer thread.
We'll cover the following...
ReadWrite Lock
Imagine you have an application where you have multiple readers and a single writer. You are asked to design a lock which lets multiple readers read at the same time, but only one writer write at a time.
Solution
First of all let us define the APIs our class will expose. We'll need two for writer and two for reader. These are:
acquireReadLock
releaseReadLock
acquireWriteLock
releaseWriteLock
This problem becomes simple if you think about each case:
Before we allow a reader to enter the critical section, we need to make sure that there's no writer in progress. It is ok to have other readers in the ...