开发者社区> 问答> 正文

协程与异步编程的时候,上下文切换是指什么?

协程与异步编程的时候,上下文切换是指什么?

展开
收起
1358896759097293 2021-05-04 15:28:45 1033 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    上下文切换会吃掉宝贵的CPU资源,大家很多情况下对上下文有误区,进出内核和调度之间其实很大差异的。假如像刚才这种场景,我们看到多个线程来回调用,那一个线程当它资源耗尽或者比较阻塞的时候,下个线程选谁?其实操作系统需要进行调度,真正的损耗远大于想象。

    13.png

    我们可以看到进出内核是上图左边灰色这一列,它的耗时是很小的,可能在几十到一百纳秒级别。然后假如这一次系统调用它触发了切换,比如读一个程序里面有数据,信令要挂起会触发上下文切换,如果希望有调度,开销就会很大,会达到40倍左右。

    2021-05-05 22:58:01
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Swoole2.0原生协程高性能开发实践 立即下载
fibjs 模块重构从回调到协程 立即下载
fibjs 模块重构从回调到协程--陈垒 立即下载

相关实验场景

更多