2013-11-22 28 views
0

我以爲jstack應該提供線程優先級信息,但我得到的是這樣的,例如...java - 如何獲得JVM線程的優先級?

Deadlock Detection: 

No deadlocks found. 

Thread 18668: (state = BLOCKED) 
- java.lang.Thread.sleep(long) @bci=0 (Interpreted frame) 
- sun.net.www.http.KeepAliveCache.run() @bci=3, line=149 (Interpreted frame) 
- java.lang.Thread.run() @bci=11, line=662 (Interpreted frame) 


Thread 1382: (state = IN_JAVA) 
- java.nio.Bits.copyToArray(long, java.lang.Object, long, long, long) @bci=64, line=715 (Compiled frame; information may be imprecise) 

如何查找線程的優先級?

操作系統:Ubuntu的10.04.4

的Java 1.6.0_26

回答

0

最有可能它不具備線程的優先級,因爲它僅僅是一個暗示這通常忽略。特別是如果你有空閒的CPU。

要獲得線程優先級,您可以獲取進程中的所有線程並獲取優先級集。我不相信你在外面得到這個。

+0

我沒有空閒的CPU,我設置了-XX:+ UseThreadPriorities和-XX:ThreadPriorityPolicy = 42如果這有所作爲。 – TedTrippin

+0

在這種情況下,我會優化您的代碼或購買更大/更多的機器,以免始終使用100%的cpus。 –

+0

對不起,我設法將您的評論誤解爲「CPU at max」。它不是最大的,有免費的CPU,它在100%和315%之間波動。我認爲這臺機器上的最大值是800% - 8個核心。 – TedTrippin