Codacoda
Back to Academy

concurrency

Readers-Writers Problem

The readers-writers problem addresses concurrent access to a shared resource where multiple readers can safely read simultaneously, but writers require exclusive access. A naive mutex blocks all concurrent access, reducing throughput unnecessarily when most operations are reads. The solution uses a read-write lock that distinguishes between shared (read) and exclusive (write) access. This pattern is critical for high-read, low-write workloads like caches and configuration stores.

Use Cases

  • Database systems where SELECT queries vastly outnumber INSERT/UPDATE operations
  • Configuration stores read by many services but updated infrequently
  • In-memory caches shared across threads with occasional invalidation
  • File systems where concurrent reads are safe but writes must be exclusive

Visualization

INITIALRW Lockreaders: 0Shared Datav1Reader 1idleReader 2idleReader 3idleWriteridle
Speed:1x
Multiple readers can read concurrently, but a writer needs exclusive access.Step 1 / 7

Implementation

Output

Click "Run Code" to see output...