1.线程的生命周期
2.线程的调度方式
(1)时间片轮转方式: 平均 公平 (2)抢占式调度:根据优先级不同,优先级高的线程获得时间片的机会大一点 优先级相同时会随机选取一个线程执行 JAVA使用抢占式调度方式: 计算机只有一个CPU,CPU在某一时刻只能执行一条指令,线程只有的到时间片才能有使用权,所以JAVA多线程的执行具有随机性
3.设置和获取优先级的方法
Thread类的成员方法,方然我们创建的Thread的子类可以使用这些方法 public final int getPriority() ; 获得优先级 public final int setPriority(int newPriority) ; 设置优先级
默认的线程的优先级是 5 线程的优先级的范围是 1 -10
注意线程的优先级高只是表示获得时间片的机会大一点,并不表示一定会先执行这个线程
4.代码展示
优先级代码展示
public class Mythread extends Thread{
public Mythread() {
}
public Mythread(String name) {
super(name);
}
@Override
public void run() {
for (int i = 0 ; i<200 ;i++ ){
String thname = getName();
System.out.println(thname+":"+i);
}
}
}
主程序
public static void main(String[] args) {
Mythread mythread1 = new Mythread();
Mythread mythread2 = new Mythread();
Mythread mythread3 = new Mythread();
mythread1.setName("one");
mythread2.setName("two");
mythread3.setName("three");
mythread1.setPriority(4);
mythread2.setPriority(5);
mythread3.setPriority(7);
mythread1.start();
mythread2.start();
mythread3.start();
}
|