Что такое ReadWriteLock?

Senior
235 просмотров
AFK Offer AI

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

Следующий вопрос

Что такое async-profiler и чем он полезнее JFR для CPU профилирования?