Java提供10个等级的线程优先级,分别用1~10表示,优先级最低为1,最高为10,默认值是5。Thread类声明了3个表示优先级的公有静态常量:
public final static int MIN_PRIORITY = 1; //最低优先级
public final static int NORM_PRIORITY = 5; //默认优先级
public final static int MAX_PRIORITY = 10; //最高优先级
Thread类中与线程优先级有关的方法有以下2个:
public final int getPriority() //获得线程优先级
public final void setPriority(int newPriority) //设置线程优先级
每个线程对象创建时自动获得默认优先级5,调用setPriority()方法可改变线程对象的优先级,这样,使重要或紧急的线程拥有较高的优先级,从而能够更快地进入运行态。
如:
thread_odd.setPriority(10);
则奇数线程将中断main线程,待奇数线程执行完,再执行main线程。程序运行结果如下:
如果设置奇数线程的优先级为最小值1:
thread_odd.setPriority(1);
则先执行偶数线程,待偶数线程执行完,再执行奇数线程。
public final static int MIN_PRIORITY = 1; //最低优先级
public final static int NORM_PRIORITY = 5; //默认优先级
public final static int MAX_PRIORITY = 10; //最高优先级
Thread类中与线程优先级有关的方法有以下2个:
public final int getPriority() //获得线程优先级
public final void setPriority(int newPriority) //设置线程优先级
每个线程对象创建时自动获得默认优先级5,调用setPriority()方法可改变线程对象的优先级,这样,使重要或紧急的线程拥有较高的优先级,从而能够更快地进入运行态。
如:
thread_odd.setPriority(10);
则奇数线程将中断main线程,待奇数线程执行完,再执行main线程。程序运行结果如下:
如果设置奇数线程的优先级为最小值1:
thread_odd.setPriority(1);
则先执行偶数线程,待偶数线程执行完,再执行奇数线程。