首页 > 解决方案 > ConcurrentHashMap 实现从 Java 7 更改为 8

问题描述

我最近查看了 ConcurrentHashMap java 1.8 源代码,整个实现是从 java 1.7 更改的。特别是我更想知道为什么他们现在使用锁定目的synchronized而不是 1.7 中的 Reentrantlock。如果有人可以提供一些指示或指向一些解释 1.7 版本中缺点的文章。

标签: javamultithreadingsynchronizedconcurrenthashmapreentrantlock

解决方案


根据这个答案,实现 Java 8 的新功能(接口上的许多额外方法)所需的更改量需要Map重写。

还有另一个线程与您对使用内部锁而不是 Lock 对象有相同的特定问题(但没有得到答复)。


推荐阅读