c – 在UNIX系统上调用sleep(0)有什么影响?

栏目: 服务器 · 发布时间: 7年前

内容简介:基本上,它可以将控制权交还给调度程序,并让您立即重新安排.也就是说,尝试欺骗操作系统做某事基本上是一种破解.愚弄操作系统绝不是一个好主意.如果系统适当地欠载,那么进入休眠状态将意味着操作系统获得控制并让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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

另一个地球

另一个地球

[美]马克·格雷厄姆、威廉·H·达顿 / 胡泳、徐嫩羽 / 电子工业出版社 / 2015-10-1 / 78

互联网在日常工作和生活中扮演日益重要的角色,互联网将如何重塑社会?本书通过汇集有关互联网文化、经济、政治角色等问题的研究成果,提供了特定社会制度背景下解决这一问题的根本办法。 关于互联网的研究是蓬勃发展的崭新领域,牛津大学互联网研究院(OII)作为创新型的跨学科学院,自成立起就专注于互联网研究。牛津大学互联网研究院关于互联网+社会的系列讲座在一定程度上塑造了互联网+社会。本书内容基于不同学科......一起来看看 《另一个地球》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具