内容简介:基本上,它可以将控制权交还给调度程序,并让您立即重新安排.也就是说,尝试欺骗操作系统做某事基本上是一种破解.愚弄操作系统绝不是一个好主意.如果系统适当地欠载,那么进入休眠状态将意味着操作系统获得控制并让I / O队列刷新,因此它会产生这种效果.有时.根据.
我看到人们在我使用的大量多线程,多进程应用程序系统的某些部分执行此操作.它似乎围绕调试行完成:
std::cerr << "DEBUG: Reaching: " << __FUNCTION__ << " @ " << __LINE__ << std::endl; sleep(0);
如果我微距睡眠(0); (即将其更改为“”),来自系统的调试输出似乎有不同的顺序(不太可预测),所以我认为它使得该行更快出来 – 但我认为std :: cerr是无缓冲的,并且std: :无论如何,endl调用std :: flush(),为什么会这样呢?
基本上,它可以将控制权交还给调度程序,并让您立即重新安排.也就是说,尝试欺骗操作系统做某事基本上是一种破解.
愚弄操作系统绝不是一个好主意.
如果系统适当地欠载,那么进入休眠状态将意味着操作系统获得控制并让I / O队列刷新,因此它会产生这种效果.有时.根据.
究竟它正在做什么取决于实施的细节,坦白地说,你不能依赖它.
翻译自:https://stackoverflow.com/questions/7577643/what-is-the-effect-of-calling-sleep0-on-a-unix-system
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- PHP 程序应该减少 brk 调用,否则性能会受影响
- 什么影响了数据库查询速度、什么影响了MySQL性能?
- css – Polymer 1.0 app-theme仅影响index.html,而不影响自定义元素
- AI 如何影响智能交互
- 黎曼猜想对我们影响不大
- 持续交付会如何影响测试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。