zoukankan      html  css  js  c++  java
  • 线程优先级

    线程优先级,这是在我学习线程的时候有点疑惑的地方,今天记录一下。
    先上代码:

    执行结果(注意,每次执行的结果几乎都会与上次不一样):

    恩?这就很意外了呀?为啥?我明明设置了thread3线程优先级最高呀,为啥是第二个执行的,而thread1的优先级却只有1而是最高执行的?

    原来在线程中有一个很重要的东西——时间片,什么是时间片?众所周知的,线程有5个状态:创建、就绪、运行、阻塞、死亡。
    在这5个状态里,就绪状态就是线程调用了start方法之后。那么怎么从就绪状态到达运行状态呢?这里引入一个cpu调度的概念。cpu调度是随机的,cpu调度线程也是给线程分配时间片。虽然线程的调度是随机的,但是总得有个概率吧?没错,线程的优先级就是指线程得到cpu调度的概率,也就是获得运行所需的时间片的概率。而并不是指高优先级的线程一定比低优先级更早执行。

  • 相关阅读:
    jvm09
    jvm08
    jvm07
    求解最长公共子序列问题
    归并排序
    求解N皇后问题
    快速排序算法
    求解0/1背包问题
    求解全排列问题
    求解最大连续子序列和问题
  • 原文地址:https://www.cnblogs.com/xm970829/p/12980666.html
Copyright © 2011-2022 走看看