Posted on 2009-06-02 20:45
啥都写点 阅读(195)
评论(0) 编辑 收藏 所属分类:
J2SE
关键技术:
- Java线程的优先级分为10个级别,数字越大,级别越高,默认为5。
- Thread的setPriority实例方法为线程设置优先级,参数为int类型。
- 对于两个同时启动的线程,大多数情况下优先级高的线程会比优先级低的线程先运行,当也有例外情况,完全取决于Java虚拟机的调度。
package book.thread;
public class Priority {
static class MyThread extends Thread{
private int ID = 0;
public MyThread(int id){
this.ID = id;
}
public void run(){
System.out.println("MyThread-" + this.ID +
" begin! Priority: " + this.getPriority());
System.out.println("MyThread-" + this.ID + " end!");
}
}
public static void main(String[] args) {
//建立3个优先级不同的线程
MyThread[] myThreads = new MyThread[3];
for (int i=0; i<3; i++){
myThreads[i] = new MyThread(i+1);
//三个线程的优先级分别是1,4,7
myThreads[i].setPriority(i*3+1);
}
//按优先级从低到高启动线程
for (int i=0; i<3; i++){
myThreads[i].start();
}
//先启动的线程不一定先运行,虚拟机会考虑线程的优先级,同等情况下,优先级高的线程先运行
}
}
-- 学海无涯