首页 新闻 会员 周边 捐助

java多线程优先级问题

0
悬赏园豆:5 [已解决问题] 解决于 2019-04-30 17:29

线程优先级不是概率吗?
设置了优先级为什么是绝对的。
package cn.zxm.thread02;
/**
线程的优先级 1-10
1、norm_priority 5默认
2、min_priority 1
3、max_priority 10

@author m2813
*/
public class Priority {
public static void main(String[] args) throws InterruptedException {
System.out.println(Thread.currentThread().getPriority());
MyPriority m = new MyPriority();
Thread t1 = new Thread(m);
Thread t2 = new Thread(m);
Thread t3 = new Thread(m);
Thread t4 = new Thread(m);
Thread t5 = new Thread(m);
Thread t6 = new Thread(m);

t1.setPriority(Thread.MIN_PRIORITY);
t2.setPriority(10);
t3.setPriority(Thread.MIN_PRIORITY);
t4.setPriority(Thread.MAX_PRIORITY);
t5.setPriority(Thread.MIN_PRIORITY);
t6.setPriority(Thread.MIN_PRIORITY);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
t6.start();
}
}
class MyPriority implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"-->"+Thread.currentThread().getPriority());
Thread.yield();
}
}
结果:
5
Thread-1-->10
Thread-3-->10
Thread-0-->1
Thread-2-->1
Thread-4-->1
Thread-5-->1

luckyDreamer的主页 luckyDreamer | 初学一级 | 园豆:199
提问于:2019-04-29 18:20
< >
分享
最佳答案
0

线程优先级越大,表示被CPU调度的可能性增大,并不一定先执行。

收获园豆:5
___mouM | 初学一级 |园豆:96 | 2019-04-30 17:10

关键现在的问题是优先级大的是绝对的先调用cpu。没有什么概率性。无数遍都是优先级大的先调用CPU。

luckyDreamer | 园豆:199 (初学一级) | 2019-04-30 17:14

处理的数据太少 你的电脑太好了

___mouM | 园豆:96 (初学一级) | 2019-04-30 17:18

@___mouM: 嗯,应该是这样的,感谢解惑。

luckyDreamer | 园豆:199 (初学一级) | 2019-04-30 17:26

没事 线层这章 电脑不够慢是 看不出效果的

___mouM | 园豆:96 (初学一级) | 2019-04-30 17:27

@___mouM: 哥们,你java很好啊。要不要加个好友咯

luckyDreamer | 园豆:199 (初学一级) | 2019-04-30 17:28

可以啊 我只是刚学完 也不是很好

___mouM | 园豆:96 (初学一级) | 2019-04-30 17:29

@___mouM: 没事,互相探讨,探讨得真知嘛。

luckyDreamer | 园豆:199 (初学一级) | 2019-04-30 17:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册