这是对我之前的问题的延伸
我现在从互联网收集的内容,所有调用阻塞调用的进程都会进入休眠状态,直到调度程序找到解除阻塞的原因.原因可以从缓冲区空到缓冲区满到任何其他条件.
但是,这可以成为实时的有效方式,让我们说硬/实时应用程序?由于当解除阻塞条件成立时,进程未被解锁,而是当调度程序给出他的CPU切片时,并且解除阻塞条件都为真.
好像你想要一个响应式解决方案,我不这样做"旋转锁"或"忙等待"是正确的方法,CPU切片被浪费,整个系统将无法响应或可能响应不佳.
有人可以清楚这个相互矛盾的想法.
只是好奇.实际上Sleep()的工作原理是什么(在windows.h中声明)?也许不只是那个实现,而是任何人.我的意思是 - 它是如何实现的?如何使代码在特定时间内"停止"?同样好奇cin >>和那些实际工作.他们到底做了什么?
我知道如何"阻止"继续运行的唯一方法是使用while循环,但考虑到与调用stdin方法时发生的事情相比需要大量的处理能力(仅比较一段时间(真实)从stdin读取,我猜这不是他们所做的.