深入分析ConcurrentHashMap
再多线程的情况下,如果使用HashMap,就会导致死循环,导致cpu利用率接近100%,所以如果是并发的情况不要使用HashMap
导致死循环主要是这段代码,当在多线程的情况由于没有同步导致,着段代码在扩容的时候会执行 do {
Entry<K,V> next = e.next; //假设线程一执行到这里就被调度挂起了,当再次获得执行的时候,数据结构已经改变了,而线程却不知道
原创
2016-02-24 13:43:37 ·
620 阅读 ·
0 评论