Java中线程优先级可以指定,范围是1~10。但是并不是所有的操作系统都支持10级优先级的划分(比如有些操作系统只支持3级划分:低,中,高),Java只是给操作系统一个优先级的参考值,线程最终在操作系统的优先级是多少还是由操作系统决定。
代码操作如下:
接口方法:
public class my implements Runnable {
@Override
public void run() {
for (int i = 0; i < 30; i++) {
System.out.println(Thread.currentThread().getName());
}
}
}
测试类:
public class ThreadDemo {
public static void main(String[] args) {
//创建线程要执行的参数对象
my m = new my();
//创建线程对象
Thread thread1 = new Thread(m,"张三");
Thread thread2 = new Thread(m,"李四");
//启动优先级
thread1.setPriority(1);
thread2.setPriority(10);
//启动线程
thread1.start();
thread2.start();
}
}
打印结果1:
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
进程已结束,退出代码0
打印结果2:
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
李四
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
张三
由此可见,优先级只是大概率执行的线程,并不能保证百分百的执行这个线程。