Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upConcurrentHashMap中TreeBin与TreeNode的区别 #713
Comments
|
|
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign up|
|
Java集合框架常见面试题.md
在Java1.8的实现中,
TreeBin并不是红黑树的存储节点,TreeBin通过root属性维护红黑树的根结点,因为红黑树在旋转的时候,根结点可能会被它原来的子节点替换掉,在这个时间点,如果有其他线程要写这棵红黑树就会发生线程不安全问题,所以在ConcurrentHashMap中TreeBin通过waiter属性维护当前使用这棵红黑树的线程,来防止其他线程的进入。所以在Java8中
TreeBin并没有指向下一节点的引用,而是使用TreeNode来存储红黑树节点