线程优先级:
线程有两种调度模型:
分时调度模型:所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间片。
抢占式调度模型:优先让优先级高的线程使用CPU,如果优先级相同,那么会随机选择一个。优先级高的获取CPU时间片相对多一些。而Java使用的就是抢占式调度模型。
多线程执行是有随机性的,因为谁抢到CPU的使用权是不一定的。
获取线程优先级的方法:
*public final int getPriority():返回此线程的优先级,可以获得这个线程的默认优先级。
*public final void getPriority(int newtPriority):更改此线程的优先级,可以修改线程的默认优先级。
注意:1.线程的默认优先级是5;优先级的范围是1-10.因此想要设置优先级的话,不能超出这个范围。2.线程优先级高仅仅表示线程获取CPU时间片的几率高,但要在次数较多,或者多次运行才能看出来。
线程控制:
1.暂停执行:static void sleep(long millis).
public class Sleep extends Thread {
@Override
public void run() {
for (int i = 0; i <100 ; i++) {
System.out.println (getName ()+":"+i);
try {
Thread.sleep ( 10000 );
} catch (InterruptedException e) {
e.printStackTrace ();
}
}
}
}
public class SleepD