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:

  1. 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 ...