本文共 1356 字,大约阅读时间需要 4 分钟。
先设置优先级在启动,按照常理来说优先级高的先启动,但也不一定,看CPU心情先调度哪一个,某个线程优先级越高,则其被cpu运行的概率越大
对象创建线程new的是继承Runnable接口的类package duoxiancheng;public class TestPriority { public static void main(String[] args) { //获取主线程的名字以及优先级,主线程默认优先级为5,不设置优先级的线程,优先级也默认设置为5 System.out.println(Thread.currentThread().getName()+"----->"+Thread.currentThread().getPriority()); MyPriority myPriority=new MyPriority(); Thread t1=new Thread(myPriority);//代理new出的Thread类将,代理名抛进去 Thread t2=new Thread(myPriority); Thread t3=new Thread(myPriority); Thread t4=new Thread(myPriority); //先设置优先级再启动,正常的优先级范围是1~10,此处一共有4个线程顺序编号为0.1.2.3 t1.start();//t1编号为0,没有设置优先级,故优先级默认为5 t2.setPriority(1);//t2编号为1,优先级为1 t2.start(); t3.setPriority(4);//t3编号为2,优先级为4 t3.start(); t4.setPriority(Thread.MAX_PRIORITY);//最大优先级为一个常量10,max-priority=10,t4编号为3,优先级为10 t4.start(); }}class MyPriority implements Runnable{ @Override public void run() { //获取当前线程的名字以及优先级 System.out.println(Thread.currentThread().getName()+"----->"+Thread.currentThread().getPriority()); }}
运行结果如下:
“C:\Program Files\Java\jdk1.8.0_201\bin\java.exe” "-javaagent:C:\Program Files\JetBrains\IntelliJ main----->5 Thread-1----->1 Thread-2----->4 Thread-0----->5 Thread-3----->10Process finished with exit code 0
转载地址:http://yznwi.baihongyu.com/