我有几个任务在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程序员。