gpt4 book ai didi

java - setPriority() 方法不能正常工作

转载 作者:行者123 更新时间:2023-11-29 07:00:44 26 4
gpt4 key购买 nike

我从 here 做示例代码.我得到结果:

Thread[Thread-3,1,main]: 5
Thread[Thread-0,10,main]: 5
Thread[Thread-2,1,main]: 5
Thread[Thread-1,1,main]: 5
Thread[Thread-4,1,main]: 5
Thread[Thread-0,10,main]: 4
Thread[Thread-3,1,main]: 4
Thread[Thread-2,1,main]: 4
Thread[Thread-0,10,main]: 3
Thread[Thread-5,1,main]: 5
Thread[Thread-3,1,main]: 3
Thread[Thread-2,1,main]: 3
Thread[Thread-1,1,main]: 4
Thread[Thread-5,1,main]: 4
Thread[Thread-3,1,main]: 2
Thread[Thread-2,1,main]: 2
Thread[Thread-5,1,main]: 3
Thread[Thread-3,1,main]: 1
Thread[Thread-4,1,main]: 4
Thread[Thread-0,10,main]: 2
Thread[Thread-2,1,main]: 1
Thread[Thread-5,1,main]: 2
Thread[Thread-4,1,main]: 3
Thread[Thread-5,1,main]: 1
Thread[Thread-1,1,main]: 3
Thread[Thread-0,10,main]: 1
Thread[Thread-4,1,main]: 2
Thread[Thread-1,1,main]: 2
Thread[Thread-4,1,main]: 1
Thread[Thread-1,1,main]: 1

setPriority 似乎没有正常工作。为什么?

如何修改示例代码以查看属性的效果。

最佳答案

您找到的示例已损坏。

  • 正如其他问题和评论所指出的,如果您的 JVM 可以使用多个内核,那么多个线程就可以并行运行。发生这种情况时,它不会只是运行最高优先级的可运行线程。

  • 最重要的是,线程调度程序在优先级方面的行为取决于平台,尤其是因为在许多平台上,线程调度是由操作系统而不是 Java 实现的。

以下是一些精选的涉及线程优先级的 Oracle 引用资料:

  • > Recommended Coding Practices: Don't Depend on Thread Priorities
  • Java Threads Issues - 上面写着:

    The thread priorities available to Java threads on a native threaded JVM should be treated as hints to the scheduler, especially if the threads are compute-bound. The number of processors available to a process is dynamic and unpredictable. Therefore, an attempt to use priorities to schedule execution on any multi-tasked, multiprocessor system is not likely to succeed.

除了此类 Material 以及有关 Java 优先级如何映射到 native 线程优先级的 Material 外,Oracle 文档几乎没有提及 Java SE 的线程优先级及其含义。当然,没有尝试精确指定行为。

Java RT(实时)是一个不同的问题,但它不再是 Oracle 支持的产品线。 (据我所知)。

关于java - setPriority() 方法不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26581057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com