为什么线程优先级不起作用?

时间:2017-05-03 11:48:16

标签: java multithreading thread-priority

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()方法的解决方案。

1 个答案:

答案 0 :(得分:1)

请参阅Oracle docs : Background Information: Java Threads

  

JVM可以以任何方式自由实施优先级,包括忽略值

我的重点。

虽然这篇文档是关于Solaris实现的,但它应该适用于所有JVM。