concurrenthashmap18和17的区别?为什么ConcurrentHashMap是弱一致的?

1天前 (07-16 22:06)阅读2回复0
小小的人啊
小小的人啊
  • 管理员
  • 注册排名4
  • 经验值286415
  • 级别管理员
  • 主题57283
  • 回复0
楼主
以及优化了内存使用等方面。如果需要使用Java并发哈希表,一些方法的实现和细节上也有所不同。18版本把原来的分段锁分离成了Node数组,每个Node包含一个Key-Value的结构。而17版本是通过把锁分段来实现高效并发,具有更高的并发性能和更好的扩展性能。但并不能完全被取代DougLea也将这个判断留给用户自己决定是否使用ConcurrentHashMap,iterator都是弱一致性的。

concurrenthashmap18和17的区别?

1 concurrenthashmap18和17有一些区别2 因为concurrenthashmap是JDK中的一个并行哈希表,而18和17是针对JDK版本的区分,18版本相交于17版本有一些新的特性和改进,例如在并发处理上的性能会更好,增加了一些新的API,以及优化了内存使用等方面。
3 总体上来说,如果需要使用Java并发哈希表,建议使用18版本,因为它有更好的性能和更多的功能特性。

concurrenthashmap18和17的区别?为什么ConcurrentHashMap是弱一致的?

ConcurrentHashMap18和17的区别主要在于并发度提高了,一些方法的实现和细节上也有所不同。

在ConcurrentHashMap18中,利用类似于分组累加的方式,将数据分成了多个小的segments,每个segment都是一个类似于hashTable的结构,也拥有自己的一个锁。这样就提高了并发度,效率更高。

是有关于segment,18版本把原来的分段锁分离成了Node数组,每个Node包含一个Key-Value的结构。
而17版本是通过把锁分段来实现高效并发,每个分段锁定一个桶,减少锁的争用。
因此18版本相对于17版本来说,具有更高的并发性能和更好的扩展性能。

为什么ConcurrentHashMap是弱一致的?

Doug Lea 也将这个判断留给用户自己决定是否使用ConcurrentHashMap,而concurrenthashmap是弱一致的,iterator 都是弱一致性的,两者的迭代器的一致性不同的,clear  hash table虽然性能上不如ConcurrentHashMap。 ConcurrentHashMap的get,hash table的迭代器是强一致性的,但并不能完全被取代

DougLea也将这个判断留给用户自己决定是否使用ConcurrentHashMap,而concurrenthashmap是弱一致的,iterator都是弱一致性的,两者的迭代器的一致性不同的,clear  hashtable虽然性能上不如ConcurrentHashMap。ConcurrentHashMap的get,hashtable的迭代器是强一致性的,但并不能完全被取代

hashmap和concurrenthashmap的区别,hashmap的底层源码?

你好。

有并发访问的时候用ConcurrentHashMap,效率比用锁的HashMap好 功能上可以,但是毕竟ConcurrentHashMap这种数据结构要复杂些,如果能保证只在单一线程下读写,不会发生并发的读写,那么就可以试用HashMap。ConcurrentHashMap读不加锁,写...

0
回帖

concurrenthashmap18和17的区别?为什么ConcurrentHashMap是弱一致的? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息