350 читали · 2 года назад
Java 1082. Назовите различия между synchronized и ReentrantLock?
Ниже перечислены некоторые различия между synchronized и ReentrantLock в Java: Гибкость использования: ReentrantLock предоставляет более гибкий способ управления блокировками в сравнении с synchronized. Он обеспечивает возможность использования нескольких условных переменных, попыток получить блокировку с таймаутом и прерываниями, что делает его более мощным инструментом для управления потоками. synchronized, с другой стороны, предоставляет простой и удобный способ синхронизации методов или блоков, но не поддерживает дополнительные функции, такие как условные переменные...
1 месяц назад
🚀 Java: используйте ReentrantReadWriteLock, когда чтений намного больше, чем записей
Если у вас есть общий ресурс (например, кэш, конфигурация или состояние сервиса), который часто читают разные потоки, но редко изменяют — обычный synchronized может сильно тормозить систему. В таких случаях лучше использовать ReentrantReadWriteLock из java.util.concurrent. Идея простая: - Read Lock — позволяет нескольким потокам читать данные одновременно - Write Lock — разрешает запись только одному потоку и блокирует всех остальных Таким образом можно сильно увеличить параллелизм: десятки потоков могут читать данные одновременно, а запись происходит эксклюзивно...