Java HashMap的死循环
2013-11-06 10:39
232 查看
引用文章
Please refer to: http://coolshell.cn/articles/9606.html问题的症状
从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经常占了100%的CPU,查看堆栈,你会发现程序都Hang在了HashMap.get()这个方法上了,重启程序后问题消失。但是过段时间又会来。而且,这个问题在测试环境里可能很难重现。我们简单的看一下我们自己的代码,我们就知道HashMap被多个线程操作。而Java的文档说HashMap是非线程安全的,应该用ConcurrentHashMap。
但是在这里我们可以来研究一下原因。
定位问题
jstack 打印堆栈相关文章推荐
- Java HashMap的死循环
- Java HashMap的死循环
- 疫苗:Java HashMap的死循环
- 疫苗:Java HashMap的死循环
- Java HashMap的死循环
- Java HashMap的死循环
- 解析java的hashmap死循环问题
- JAVA HASHMAP的死循环
- java中循环HashMap的两种方法
- 深入理解JAVA集合系列三:HashMap的死循环解读
- java HashMap 循环遍历map的方法(转)
- java HashMap 循环遍历map的方法
- Java HashMap拓容死循环
- Java HashMap的死循环
- Java开发hashmap的死循环
- Java HashMap的死循环
- java循环HashMap两种方法的效率比较
- Java HashMap的死循环
- 推荐:并发情况下:Java HashMap 形成死循环的原因
- 疫苗:Java HashMap的死循环