HashMap 和 HashTable 以及ConcurrentHashMap 结构及区别
HashMap (数组 + 链表 + 红黑树(链表长度超过8会变成红黑树))非线程安全原因:
1.添加元素:哈希碰撞时 add 添加元素时是通过头结点来添加的, 这时候就会存在多线程安全问题 (A写入新的头结点后、B也写入新的头结点),B的写入操作就会覆盖A的
2.删除键值元素:同上,, 多线程修改的时候 其中一个线程修改的时候 把自己内存的数据写回去的时候,可能其他的线程已经把这个位置修改...
原创
2019-04-17 11:20:30 ·
208 阅读 ·
0 评论