Java 线程优先级如何转换为 OS 线程优先级?

How are Java Thread priorities translated to an OS thread priority?(Java 线程优先级如何转换为 OS 线程优先级?)
本文介绍了Java 线程优先级如何转换为 OS 线程优先级?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

Java API 线程优先级 (1-10) 如何转换为操作系统级别的优先级,因为大多数操作系统没有与此匹配的线程优先级(在数量方面).

How are the java API thread priorities (1-10) gets translated to the OS level priorities since most OS don't have thread priority levels (in terms of number) which match this.

因此请记住,是否存在两个或多个具有不同优先级的线程最终在操作系统级别获得相同优先级的情况.

So keeping in mind , can there be a scenario when two or more threads with different priorities eventually get the same priority at OS level.

请澄清,如果我的理解有一些更正.

Please clarify, if I there is some correction in my understanding.

推荐答案

确实,某些优先级可以映射到相同的本机"优先级.以下是列表(基于 OpenJDK 6 中的 Hotspot 代码):

Indeed, some priority levels can map to the same "native" priority level. Here's the list (based on the Hotspot code in OpenJDK 6):

  • 1 0
  • 2 32
  • 3 64
  • 4 96
  • 5 – 10 127

值得注意的是,在 Solaris 上,您不能将线程优先级提高到高于正常水平,只能降低它:5 的优先级值与任何更高的值相同.

Of note is that on Solaris, you can't raise the thread priority above normal, only lower it: the priority value for 5 is the same as any of the higher values.

  • 1 – 10 4 – -5(nice 值)

值得注意的是,在 Linux 上,Java 中不同的线程优先级确实映射到本机级别的不同优先级值.

Of note is that on Linux, different thread priorities in Java do map to distinct priority values at native level.

  • 1 – 2 THREAD_PRIORITY_LOWEST
  • 3 – 4 THREAD_PRIORITY_BELOW_NORMAL
  • 5 – 6 THREAD_PRIORITY_NORMAL
  • 7 – 8 THREAD_PRIORITY_ABOVE_NORMAL
  • 9 – 10 THREAD_PRIORITY_HIGHEST

这篇关于Java 线程优先级如何转换为 OS 线程优先级?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)