zoukankan      html  css  js  c++  java
  • 线程切换

    什么引起线程切换

      时间片轮转

      线程阻塞

      线程主动放弃时间片

    线程切换的开销

      直接开销:直接开销是线程切换本身引起的,无可避免,必然发生 

        用户态与内核态的切换

          线程切换只能在内核态完成,如果当前用户处于用户态,则必然引起用户态与内核态的切换

        上下文切换

          新线程的切入,带来上下文切换。除此之外,还需要切换寄存器、程序计数器、线程栈

        线程调度算法

          线程调度算法需要管理线程的状态、等待条件等,如果根据优先级调度,则还需要维护优先级队列

      间接开销 : 间接开销是直接开销的副作用,取决于系统实现和用户代码实现。

        缓存缺失

          切换进程,需要执行新逻辑。如果二者的访问的地址空间不相近,则会引起缓存缺失,具体影响范围取决于系统实现和用户代码实现。

          如果系统的缓存较大,则能减小缓存缺失的影响;如果用户线程访问数据的地址空间接近,则本身的缓存缺失率也比较低。

    ------------------------

    https://monkeysayhi.github.io/2017/11/29/%E6%B5%85%E8%B0%88linux%E7%BA%BF%E7%A8%8B%E6%A8%A1%E5%9E%8B%E5%92%8C%E7%BA%BF%E7%A8%8B%E5%88%87%E6%8D%A2/

  • 相关阅读:
    PHP中get请求中参数的key不能是para
    js对数组中的数字排序
    js 数组不重复添加元素
    Controllers
    Views
    Models
    Requirements
    Pull Requests
    Upgrade Guide
    Overview & Change Log
  • 原文地址:https://www.cnblogs.com/Jomini/p/15552238.html
Copyright © 2011-2022 走看看