で実行したいくつかのタスクがあり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 プログラマーではありません。