public class Thread1 implements Runnable
{
@Override
public void run() {
System.out.println("Exiting1");
}
public static void main(String[] args)
{
System.out.println(Thread.currentThread().getPriority());
Thread1 i=new Thread1();
Thread t=new Thread(i);
t.setPriority(8);
System.out.println(t.getPriority());
t.start();
System.out.println("Exiting");
}
}
这里我怀疑我将线程的优先级设置为高于main()线程,然后为什么main()中的sopln()首先执行。我的线程应首先执行,因此它应首先执行run()方法的sopln()然后执行main()方法的解决方案。
答案 0 :(得分:1)
请参阅Oracle docs : Background Information: Java Threads
JVM可以以任何方式自由实施优先级,包括忽略值。
我的重点。
虽然这篇文档是关于Solaris实现的,但它应该适用于所有JVM。