【问题标题】:java - how to get JVM thread priority?java - 如何获得JVM线程优先级?
【发布时间】:2013-11-22 13:13:27
【问题描述】:

我认为 jstack 应该提供线程优先级信息,但我得到的只是这个......

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

【问题讨论】:

    标签: java jstack


    【解决方案1】:

    很可能它没有线程优先级,因为它只是一个通常被忽略的提示。特别是如果你有空闲的 CPU。

    要获得线程优先级,您可以获取进程中的所有线程并获得优先级集。我不相信你 csn 从外部得到这个。

    【讨论】:

    • 我没有空闲的 cpu,我已经设置了 -XX:+UseThreadPriorities 和 -XX:ThreadPriorityPolicy=42,如果这有影响的话。
    • 在这种情况下,我会优化您的代码或购买更大/更多的机器,这样您就不会一直使用 100% 的 CPU。
    • 对不起,我把你的评论误读为“CPU at max”。它不是最大的,有可用的 CPU 在 100% 和 315% 之间波动。我认为这台机器上的最大值是 800% - 8 核。
    • @TedTrippin 所以如果有空闲的 CPU,即使是最低优先级的线程也会运行。只有当调度程序必须选择哪些线程可以运行以及运行多长时间时,优先级才重要。
    猜你喜欢
    • 2010-09-22
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多