欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java hashmap 非线程安全访问 导致CPU过高 或 线程挂起

程序员文章站 2022-03-04 09:24:32
...

当利用非线程安全的方式访问HashMap时,会导致CPU过高 或 过多线程挂起

kill -3 pid

java -jar jca457.jar 

打开: javacore文件javacore.20160920.085924.26934.0004.txt

 

java hashmap 非线程安全访问 导致CPU过高 或 线程挂起

 

堆栈表现不同

at java.util.HashMap.findNonNullKeyEntry() 

at java.util.HashMap.getEntry() 

at java.util.HashMap.get() 

at com.xyz.methodABC() 

... 

or 

at java.util.HashMap.findNonNullKeyEntry() 

at java.util.HashMap.putImpl() 

at java.util.HashMap.put() 

at com.xyz.methodABC() 

 

请求线程可分为以下几种状态: 

死锁,Deadlock(重点关注

执行中,Runnable(重点关注)    

等待资源,Waiting on condition(重点关注)  

等待监控器检查资源,Waiting on monitor 

暂停,Suspended 

对象等待中,Object.wait() 

阻塞,Blocked(重点关注)   

停止,Parked

  • java hashmap 非线程安全访问 导致CPU过高 或 线程挂起
  • 大小: 80.1 KB