Java ConcurrentHashMap.keySet() 挂起

标签 java multithreading concurrenthashmap jstack

我在 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/

相关文章:

java - 处理已检查的异常

c++ - std::mutex 不能在 std::thread 之间共享

multithreading - 基于静态状态的回收与基于时代的回收

java - 跟踪映射中的重复插入(多线程环境)

java - 使用 char[] 参数通过 JNI 调用方法

java - 读取包含在 jar 内的文件

java - "putIfAbsent"在CHM中如何工作?

java - 由多个线程访问的 map 上的准确数据

java - 从命令行编译类时出错

linux - 如何在 Linux 中更改特定线程 (LWT) 的优先级?