1. Java线程的优先级从1到10级别,值越大优先级越高线程默认优先级是5。值越大优先级越高
(1) 继承自Thread类创建线程类:
package cn.itcast_04; public class ThreadPriority extends Thread { @Override public void run() { for (int x = 0; x < 100; x++) { System.out.println(getName() + ":" + x); } } }
(2)测试类代码,如下:
1 package cn.itcast_04; 2 3 /* 4 * 我们的线程没有设置优先级,肯定有默认优先级。 5 * 那么,默认优先级是多少呢? 6 * 如何获取线程对象的优先级? 7 * public final int getPriority():返回线程对象的优先级 8 * 如何设置线程对象的优先级呢? 9 * public final void setPriority(int newPriority):更改线程的优先级。 10 * 11 * 注意: 12 * 线程默认优先级是5。 13 * 线程优先级的范围是:1-10。 14 * 线程优先级高仅仅表示线程获取的 CPU时间片的几率高,但是要在次数比较多,或者多次运行的时候才能看到比较好的效果。 15 * 16 * IllegalArgumentException:非法参数异常。 17 * 抛出的异常表明向方法传递了一个不合法或不正确的参数。 18 * 19 */ 20 public class ThreadPriorityDemo { 21 public static void main(String[] args) { 22 ThreadPriority tp1 = new ThreadPriority(); 23 ThreadPriority tp2 = new ThreadPriority(); 24 ThreadPriority tp3 = new ThreadPriority(); 25 26 tp1.setName("东方不败"); 27 tp2.setName("岳不群"); 28 tp3.setName("林平之"); 29 30 // 获取默认优先级 31 // System.out.println(tp1.getPriority()); 32 // System.out.println(tp2.getPriority()); 33 // System.out.println(tp3.getPriority()); 34 35 // 设置线程优先级 36 // tp1.setPriority(100000); 37 38 //设置正确的线程优先级, 39 tp1.setPriority(10); 40 tp2.setPriority(1); 41 42 tp1.start();//设置tp1线程优先级为10 43 tp2.start();//设置tp2线程优先级为1 44 tp3.start();//默认tp3线程优先级为5 45 } 46 }