ReadWriteLock разделяет блокировку на read и write. Несколько потоков могут читать одновременно (shared lock), но write — эксклюзивный, блокирует и чтение, и запись. ReentrantReadWriteLock — реализация. readLock().lock() для чтения, writeLock().lock() для записи. Идеально для кеша: много чтений, редкие записи. Потенциальная проблема: writer starvation — если читатели постоянно приходят, writer может никогда не получить лок. Fairness-режим решает это. С Java 8 есть StampedLock — ещё быстрее.
Что такое ReadWriteLock?
Senior
235 просмотровAFK Offer AI
Что такое async-profiler и чем он полезнее JFR для CPU профилирования?