打字猴:1.700450029e+09
1700450029
1700450030 该多线程类实现了Runnable接口,实现了run方法,注意在run方法中有一个比较占用CPU的计算,该计算毫无意义,只是为了保证一个线程尽可能多地消耗CPU资源,目的是为了观察CPU繁忙时不同优先级线程的执行顺序。需要说明的是,如果此处使用了Thread.sleep()方法,则不能体现出线程优先级的本质了,因为CPU并不繁忙,线程调度不会遵循优先级顺序来进行调度。
1700450031
1700450032 客户端的代码如下:
1700450033
1700450034 public static void main(String[]args){
1700450035
1700450036 //启动20个不同优先级的线程
1700450037
1700450038 for(int i=0;i<20;i++){
1700450039
1700450040 new TestThread().start(i%10+1);
1700450041
1700450042 }
1700450043
1700450044 }
1700450045
1700450046 这里创建了20个线程,每个线程在运行时都耗尽了CPU资源,因为优先级不同,线程调度应该最先处理优先级最高的,然后处理优先级最低的,也就是先执行2个优先级为10的线程,然后执行2个优先为9的线程,2个优先级为8的线程……但是结果却并不是这样的。
1700450047
1700450048 Priority:10
1700450049
1700450050 Priority:9
1700450051
1700450052 Priority:10
1700450053
1700450054 Priority:9
1700450055
1700450056 Priority:7
1700450057
1700450058 Priority:7
1700450059
1700450060 Priority:8
1700450061
1700450062 Priority:8
1700450063
1700450064 Priority:5
1700450065
1700450066 Priority:5
1700450067
1700450068 Priority:6
1700450069
1700450070 Priority:6
1700450071
1700450072 Priority:4
1700450073
1700450074 Priority:4
1700450075
1700450076 Priority:3
1700450077
1700450078 Priority:3
[ 上一页 ]  [ :1.700450029e+09 ]  [ 下一页 ]