ReadWriteLock снижает конкуренцию за блокировку, используя двойной механизм блокировки, который разделяет операции чтения и записи на независимые блокировки.
Класс содержит две отдельные блокировки:
Этот подход основан на принципе, что параллельные операции чтения не требуют взаимного исключения, когда не выполняется операция записи.
Обычные блокировки сериализуют весь доступ, заставляя даже параллельных читателей ждать друг друга. ReadWriteLock устраняет это узкое место, позволяя параллельное чтение, которое в большинстве приложений происходит значительно чаще, чем запись. Только когда выполняется операция записи, система обеспечивает строгое взаимное исключение, минимизируя общую конкуренцию.
ReadWriteLock позволяет нескольким потокам одновременно удерживать read lock, но только один поток может удерживать write lock в любой момент времени.
Новый — ещё не проверен сообществом
Вы