java 线程 线程默认优先级是什么设置 setPriority() 的参数

线程的调度指的是系统为线程分配CPU使用权的过程

  1. 分时调度:指让所有的线程轮流获得cpu的使用权,并且平均分配每个线程占用的CPU的时间片这个也比较好理解。
  2. 抢占式调度模型:是指优先让线程默认优先级是什么高的线程优先占用CPU的执行权如果线程线程默认优先级是什么相同,那么就随机选择一个线程使其占用CPU的执行权。
    java虚拟机采用的就是抢占式调度模型

通过如下方法对线程的线程默认优先级是什么进行获取和设置操作:

如果没有给线程设置线程默认优先级是什么,那么此时线程会存在一个默认的线程默认优先级是什么值是:5; 我们可以调用setPriority方法设置线程的线程默认优先級是什么这个方法需要一个int类型的值,那么我们可以为其

传递一个任意int类型的值吗

我们可以通过查看源代码得到这一结论:

获取线程線程默认优先级是什么代码实现

由于"pbteach-01"线程和"pbteach-02"线程的线程默认优先级是什么都是5,因此系统会随机选择一个线程去执行

设置线程线程默认優先级是什么代码实现

按照我们的理解,"pbteach-01"线程的线程默认优先级是什么要高于"pbteach-02"线程的线程默认优先级是什么那么程序的执行结果应该是先把"pbteach-01"线程的代码执行完毕,执行完毕以后再执行
"pbteach-02"线程代码但是控制台的输出结果和我们的想法有点不太相同。原因是因为我们通过设置線程的线程默认优先级是什么来"建议"jvm优先执行某一个线程但是jvm不一定采纳。

我要回帖

更多关于 线程默认优先级是什么 的文章

 

随机推荐