相关疑难解决方法(0)

什么是"忙等待"与"睡眠"的权衡?

这是对我之前的问题的延伸

unix/linux套接字中的阻塞模式如何工作?

我现在从互联网收集的内容,所有调用阻塞调用的进程都会进入休眠状态,直到调度程序找到解除阻塞的原因.原因可以从缓冲区空到缓冲区满到任何其他条件.

但是,这可以成为实时的有效方式,让我们说硬/实时应用程序?由于当解除阻塞条件成立时,进程未被解锁,而是当调度程序给出他的CPU切片时,并且解除阻塞条件都为真.

好像你想要一个响应式解决方案,我不这样做"旋转锁"或"忙等待"是正确的方法,CPU切片被浪费,整个系统将无法响应或可能响应不佳.

有人可以清楚这个相互矛盾的想法.

c linux operating-system

22
推荐指数
2
解决办法
3万
查看次数

C++ - Sleep()和cin如何工作?

只是好奇.实际上Sleep()的工作原理是什么(在windows.h中声明)?也许不只是那个实现,而是任何人.我的意思是 - 它是如何实现的?如何使代码在特定时间内"停止"?同样好奇cin >>和那些实际工作.他们到底做了什么?

我知道如何"阻止"继续运行的唯一方法是使用while循环,但考虑到与调用stdin方法时发生的事情相比需要大量的处理能力(仅比较一段时间(真实)从stdin读取,我猜这不是他们所做的.

c++ windows multithreading scheduler blocking

17
推荐指数
1
解决办法
6829
查看次数