先了解 Java是如何对线程进行调度的?
Java使用的是抢占式调度模型抢占式调度模型
优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个,优先级高的线程获取 的 CPU 时间片相对多一些。
设置和获取线程的优先级
实现
package thread;
/**
* 设置线程优先级
* @author lang
*
*/
public class ThreadDemo03 {
public static void main(String[] args) {
//创建PriotyThread对象
PriotyThread p1 = new PriotyThread();
PriotyThread p2 = new PriotyThread();
PriotyThread p3 = new PriotyThread();
//设置线程名字
p1.setName("刘备");
p2.setName("关羽");
p3.setName("张飞");
//设置线程优先级,最小1,最大10,默认5
p1.setPriority(1);
p2.setPriority(5);
p3.setPriority(10);
//启动线程
p1.start();
p2.start();
p3.start();
}
}
class PriotyThread extends Thread{
@Override
public void run() {
for (int i = 1; i <= 200; i++) {
//获取线程名字并打印
System.out.println(getName()+":"+i);
}
}
}