Java 优先级解决方法

标签 java multithreading thread-priority

我有一组不平凡的方法,最终将请求其中一个方法的结果。我想并行运行所有方法,以便立即获得所选方法的答案。

我知道每种方法被选择的概率,因此我想在方法并行运行时将这些概率反射(reflect)在方法的优先级中。

我使用的操作系统忽略了我给予线程的优先级,因此是否有解决方法来确保以最高概率运行该方法的线程将获得更多的 CPU 资源?

最佳答案

Thread类有setPriority方法。但这可能没有太大帮助,因为根据 an article其中讨论了 Java 中的线程优先级,并在 this answer 中提到。优先级的真正含义取决于操作系统。文章特别指出

there's no relation per se between priority and CPU allocation

因为每个操作系统在线程调度方面都有自己的特殊性。例如,要使线程优先级在 Linux 上工作,JVM 应该以 root 身份运行或通过 setuid 设置 root 权限(根据同一篇文章)。

关于Java 优先级解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480146/

相关文章:

java - 将递归方法(递归在循环内完成)转换为迭代方法

java - 在 Java 中,如何定义返回多个答案中最佳答案的 Future<V>?

c++ - 如何按照它们最初在 C++ 中生成的顺序从有界缓冲区中检索项目?

c# - 如何动态锁定字符串但从内存中删除锁定对象

c - C 中的 Posix 线程优先级

c - Pthread 优先级和调度

java - 使用 MySQL 的自动增量并需要检索该数字

java - 输入新条目时需要更新部分页面

java - ThreadLocal 的目的?

java - 优先级较高的线程获得与优先级较低的线程相同的 CPU 数量?