我在 Linux 机器上观察到奇怪的行为。该代码在 Win 7 上运行良好。有问题的代码卡在 xmlToJavaMap.keySet() 上。两条日志语句都没有记录!堆转储中未发现死锁。
ConcurrentHashMap<String,String> xmlToJavaMap = ApplicationContext.getBean("map");
logger.info("before for loop");
for (String key : xmlToJavaMap.keySet()) {
logger.info("key: " + key);
...
}
logger.info("map processed.");
平台: java版本“1.7.0_11” Java(TM) SE 运行时环境(版本 1.7.0_11-b21) Java HotSpot(TM) 64 位服务器 VM(内部版本 23.6-b04,混合模式) 红帽4.4.7
最佳答案
使用 jps -v 来观察您的 java 进程。然后使用 jstack 来观察线程堆栈。这可以帮助您找到解决方案。
关于Java ConcurrentHashMap.keySet() 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092030/