4
我們使用相當多的ExecutorServices運行服務。爲什麼jProfiler將Unsafe.park/unpark顯示爲使用CPU週期?
當使用jProfiler 7.1(採樣,Runnable)對服務進行分析時,我們可以看到sun.misc.Unsafe.park + unpark目前是使用熱點中大部分CPU時間的調用。
http://i.stack.imgur.com/wT2Cj.jpg
這是令人費解。
Park和unpark應該被阻塞,因此不使用任何CPU週期(或者至少是少量的)。 這是來自jprofiler的某種錯誤(即沒有檢測到它,因爲它在sun.misc包中?),還是實際上在我們使用ExecutorService框架時出現了錯誤?
是否有可能連接了可能暫停某些線程的調試器? – oksayt 2012-03-21 10:40:00
不,沒有附加調試器。另外,正如跟蹤所示,它只是在ExecutorService的getTask部分中,大部分「時間」都花費在 – R4zorax 2012-03-21 14:37:58
我們的希望是,這只是jProfiler中的一個「bug」。我很難相信Executor服務中的Worker線程實際上是在等待任務時刻循環。 – R4zorax 2012-03-21 14:45:08