最近在做项目的压力测试,测试的过程中,问题多多呀,基本上都是多线程共享数据引发的问题。
在测试的过程中发现程序运行一段时间,就会出现CPU使用100%的情况,每次程序重启之后,又会恢复原貌。通过程序中的一个超时机制得知,程序会停在某一处代码中,这块代码是从map里获得数据,由于map里有数据放入,也有数据移除,导致从map的get方法会死循环。通过网上了解,HashMap不是线程安全的,将这个改为ConcurrentMap之后,程序运行正常。
http://coolshell.cn/articles/9606.html 这是一篇在酷壳网上的有关hashMap的死循环的文章,推荐一下。