我们知道如果我们执行getcurrentthread.priority
方法,我们将获得5的线程优先级。我无法得到优先级高于Main方法的线程的答案。
答案 0 :(得分:1)
我假设你的意思是这是某个优先级队列中线程的索引,因此必须存在至少4个其他线程。
嗯,情况并非如此,不是索引,而是用于将其优先级与其他并发线程进行比较的值,不仅在您的VM中,还在您的系统上。实际上,线程可以具有相同的优先级。
附注:在线程上设置优先级时,请始终使用常量 MIN_PRIORITY
,NORM_PRIORITY
和MAX_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中其他进程中运行的所有其他线程的任何信息。