本文主要是介绍JAVA深化篇_30—— 线程使用之线程的优先级【附有详细说明及代码】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
线程的优先级
什么是线程的优先级
每一个线程都是有优先级的,我们可以为每个线程定义线程的优先级,但是这并不能保证高优先级的线程会在低优先级的线程前执行。线程的优先级用数字表示,范围从1到10,一个线程的缺省优先级是5。
Java 的线程优先级调度会委托给操作系统去处理,所以与具体的操作系统优先级有关,如非特别需要,一般无需设置线程优先级。
注意
线程的优先级,不是说哪个线程优先执行,如果设置某个线程的优先级高。那就是有可能被执行的概率高。并不是优先执行。
线程优先级的使用
使用下列方法获得或设置线程对象的优先级。
- int getPriority();
- void setPriority(int newPriority);
**注意:**优先级低只是意味着获得调度的概率低。并不是绝对先调用优先级高的线程后调用优先级低的线程。
class Priority implements Runnable{private int num = 0;private boolean flag = true;@Overridepublic void run() {while(this.flag){System.out.println(Thread.currentThread().getName()+" "+num++);}}public void stop(){this.flag = false;}
}public class PriorityThread {public static void main(String[] args)throws Exception {Priority p1 = new Priority();Priority p2 = new Priority();Thread t1 = new Thread(p1,"线程1");Thread t2 = new Thread(p2,"线程2");System.out.println(t1.getPriority());//Thread.MAX_PRIORITY = 10t1.setPriority(Thread.MAX_PRIORITY);//Thread.MAX_PRIORITY = 1t2.setPriority(Thread.MIN_PRIORITY);t1.start();t2.start();Thread.sleep(1000);p1.stop();p2.stop();}
}
这篇关于JAVA深化篇_30—— 线程使用之线程的优先级【附有详细说明及代码】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!