上下文切换会吃掉宝贵的CPU资源,大家很多情况下对上下文有误区,进出内核和调度之间其实很大差异的。假如像刚才这种场景,我们看到多个线程来回调用,那一个线程当它资源耗尽或者比较阻塞的时候,下个线程选谁?其实操作系统需要进行调度,真正的损耗远大于想象。
我们可以看到进出内核是上图左边灰色这一列,它的耗时是很小的,可能在几十到一百纳秒级别。然后假如这一次系统调用它触发了切换,比如读一个程序里面有数据,信令要挂起会触发上下文切换,如果希望有调度,开销就会很大,会达到40倍左右。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。