线程优先级
现代操作系统基本采用时分的形式调度运行的线程,线程分配得到的时间片的多少决定了线程使用处理器资源的多少,也对应了线程优先级这个概念。在JAVA线程中,通过一个int priority来控制优先级,范围为1-10,其中10最高,默认值为5。下面是源码(基于1.8)中关于priority的一些量和方法。
package com.toov5.thread;
class Priority implements Runnable {
@Override
public void run() {
for(int i=0; i<100; i++){
System.out.println(Thread.currentThread().toString()+"---i"+i);
}
}
}
public class PriorityThreadTest{
public static void main(String[] args) {
Priority priority = new Priority();
Thread t1 = new Thread(priority);
Thread t2 = new Thread(priority);
//注意设置了优先级,不代表每次都一定会被执行,只是cpu调度会优先分配
t1.setPriority(10);
t1.start();
t2.start();
}
}