Some data is read far more often than it is written, like a cache or a product catalogue. Locking out everyone for every read is wasteful, since readers do not disturb each other. The readers-writers pattern lets many readers in together but gives a writer exclusive access. Watch for starvation, since a steady stream of readers can keep a writer waiting forever, and Java's ReadWriteLock is the ready-made tool in real code.