
ConcurrentHashMap
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
面试再被问到 ConcurrentHashMap,把这篇文章甩给他!
一、背景: 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。 因为当一个线程访问HashTable的同步方法时,其他...转载 2020-04-09 12:02:22 · 221 阅读 · 0 评论 -
不止 JDK7 的 HashMap ,JDK8 的 ConcurrentHashMap 也会造成 CPU 100%?原因与解决~
现象 大家可能都听过JDK7中的HashMap在多线程环境下可能造成CPU 100%的现象,这个由于在扩容的时候put时产生了死链,由此会在get时造成了CPU 100%。这个问题在JDK8中的HashMap获得了解决。其实JDK7中的HashMap在多线程环境下不止只有CPU 100%这一共怪异现象,它还可能造成插入的数据丢失,有兴趣的读者可以自行了解下。 对于HashMap多线程的问题,我...转载 2019-03-22 09:11:34 · 219 阅读 · 0 评论