主要方法第5优先级,是java中main方法具有更高优先级的线程

时间:2013-08-28 07:45:02

标签: java

我们知道如果我们执行getcurrentthread.priority方法,我们将获得5的线程优先级。我无法得到优先级高于Main方法的线程的答案。

3 个答案:

答案 0 :(得分:1)

我假设你的意思是这是某个优先级队列中线程的索引,因此必须存在至少4个其他线程。
嗯,情况并非如此,不是索引,而是用于将其优先级与其他并发线程进行比较的值,不仅在您的VM中,还在您的系统上。实际上,线程可以具有相同的优先级。

附注:在线程上设置优先级时,请始终使用常量 MIN_PRIORITYNORM_PRIORITYMAX_PRIORITY。如果需要中间值,请使用常量计算它们:

int mediumHighPriority = (Thread.NORM_PRIORITY+Thread.MAX_PRIORITY)/2;

如果使用常量而不是它们的值,则常量值可能会在未来发生变化(可能具有更宽的范围,甚至可以反转以使较低的数字等于较高的优先级,或者NORM_PRIORITY可以变得更低或更高)你在保存方面,代码变得更清晰。

答案 1 :(得分:0)

您可以通过ThreadGroup枚举当前程序中的所有主题,例如参见this answer

答案 2 :(得分:0)

启动Java应用程序时,JVM将主ThreadGroup创建为系统ThreadGroup的成员,并将优先级设置为default(即NORM_PRIORITY)。

这仅适用于当前Java程序中的线程,并且不会提供有关OS中其他进程中运行的所有其他线程的任何信息。