ReadWriteLock — это структура из двух блокировок. Из них один блокируется для чтения (доступ может осуществляться несколькими потоками, ни один не может изменять), а другой - для доступа на запись (только один поток может иметь доступ и одновременно изменять его).