java hashmap 非线程安全访问 导致CPU过高 或 线程挂起
程序员文章站
2022-03-04 09:28:26
...
当利用非线程安全的方式访问HashMap时,会导致CPU过高 或 过多线程挂起
kill -3 pid
java -jar jca457.jar
打开: javacore文件javacore.20160920.085924.26934.0004.txt
堆栈表现不同
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