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