Java面试常见问题

ConcurrentHashMap是怎么实现线程安全的

2018-06-07  本文已影响0人  2_shou

jdk1.7使用分段锁的机制,实现并发的更新操作,底层采用数组+链表的存储结构。

jdk1.8是利用CAS+Synchronized来保证并发更新的安全,底层采用数组+链表+红黑树的存储结构。

红黑树是一种特殊的二叉树,主要用它存储有序的数据,提供高效的数据检索,时间复杂度为O(lgn),每个节点都有一个标识位表示颜色,红色或黑色,有如下5种特性:
1、每个节点要么红色,要么是黑色;
2、根节点一定是黑色的;
3、每个空叶子节点必须是黑色的;
4、如果一个节点是红色的,那么它的子节点必须是黑色的;
5、从一个节点到该节点的子孙节点的所有路径包含相同个数的黑色节点;

更多内容请转步至:
关于Java面试,你应该准备这些知识点
谈谈ConcurrentHashMap1.7和1.8的不同实现
深入浅出ConcurrentHashMap1.8

上一篇下一篇

猜你喜欢

热点阅读