Описание тега reentrantreadwritelock
ReentrantReadWriteLock - это класс Java, обеспечивающий блокировку для работы с несколькими потоками.
Эта блокировка предполагает, что некоторый ресурс может быть разблокирован (готов к блокировке перед работой с ним), заблокирован только для чтения (несколько потоков могут иметь доступ, но ни один не может изменять) или заблокирован для чтения / записи (только один поток может получить доступ и изменить). Блокировки запрашиваются путем вызова методов объекта блокировки. Если блокировки не могут быть предоставлены немедленно, эти вызовы приостанавливают текущий поток. Блокировку записи можно понизить до блокировки чтения (но не наоборот).
Чтобы гарантировать, что ресурс не будет постоянно заблокирован из-за исключения, блокировка обычно снимается внутри finally
построить.