1

我有几个任务在CachedThreadPool. 经过一些分析后,我发现任务本身只运行了 10% 的时间,而其他 90% 的时间由threadpoolexecutor$worker.run(我jvisualvm用于分析)使用。

在这里我被困住了。我不知道到底threadpoolexecutor$worker.run在做什么,为什么要花这么多时间来做,以及如何解决这个问题。我需要任务尽可能快地运行。

这就是分析器所说的:

pool-2-thread-2                                          44542 ms (100%)
    java.util.concurrent.ThreadPoolExecutor$Worker.run   44542 ms (100%)
        Self time                                        39598 ms (88.9%)
        MyClass.run                                       4943 ms (11.1%)

可能Self time意味着线程正在休眠?

提前致谢。PS请为愚蠢的人道歉,我不是一个伟大的Java程序员。

4

0 回答 0