- java多线程中有线程优先级的概念,优先级高的线程会获得更多的执行机会
- java为线程提供了10个优先级,但是不要通过数字指定线程的优先级,因为有的操作系统可能不支持全部10个优先级,应当通过Thread.MAX_PRIORITY,Thread.MIN_PRIORITY,Thread.NORM_PRIORITY,关键字来指定优先级可以通过setPriority()方法来指定线程的优先级
- 以下为代码示例,具体的讲解穿插在代码中
public class PriorityTest extends Thread{ public PriorityTest(String name){ super(name); } public void run(){ for(int i=0; i<100; i++){ System.out.println(getName() + ",其优先级是" + getPriority() + ".循环" + "变量的值为:" + i); } } public static void main(String args[]){ Thread.currentThread().setPriority(6); // 这一步指定主线程的优先级为6,这样一来由主线程创建的子线程的优先级也就都是6 for(int i=0; i<30; i++){ if(i == 10){ PriorityTest low = new PriorityTest("低级"); low.start(); System.out.println("创建之初的优先级是:" + low.getPriority()); low.setPriority(Thread.MIN_PRIORITY); // 这一步将low线程的优先级指定为最低的一级 } if(i == 20){ PriorityTest high = new PriorityTest("高级"); high.start(); System.out.println("创建之初的优先级是:" + high.getPriority()); // 这一步会输出 创建之初的优先级是:6,因为main线程的优先级是6 high.setPriority(Thread.MAX_PRIORITY); // 这一步指定high线程的优先级为最高级 } } } }
这是我看李刚编著的《疯狂Java讲义》后总结出来的。
java多线程(7)线程优先级问题
最新推荐文章于 2023-01-12 15:40:09 发布