Из документации не ясно, что происходит с потоками чтения и записи, если попытка записи происходит...
Недавно я узнал о существовании StampedLock? https://docs.oracle