Недавно я просмотрел исходный код ConcurrentHashMap java 1.8, и там вся реализация изменена с java 1.7. И, в частности, меня больше интересует, почему для целей блокировки теперь используется synchronized
вместо Reentrantlock в 1.7. Если бы кто-то мог предоставить некоторые указатели или указать мне на некоторые статьи, объясняющие недостатки в версии 1.7.
Изменение реализации ConcurrentHashMap с Java 7 на 8
comment
Только предположение: synchronized более читаем, чем ReenrantLock, за счет гибкости и, возможно, эффективности. Я предполагаю, что дополнительная гибкость не нужна, а эффективность синхронизации улучшилась до такой степени, что это лучший выбор.
- person Yoav Gur   schedule 22.06.2018
Ответы (1)
Согласно этому ответу, количество изменений, необходимых для реализации новых функций Java 8 (множество дополнительных методов на Map
интерфейс) потребовал перезаписи.
Существует также другой поток с тем же конкретным вопросом, который у вас есть об использовании встроенных блокировок вместо объектов Lock (но он остался без ответа) .
person
Community
schedule
22.06.2018