阻塞模式是否将该特定任务置于“进程等待”状态,因为我认为非阻塞套接字需要用户明确的“忙等待”或“自旋锁”实现。或者阻塞模式套接字只不过是内核忙等待的隐式实现。
在信号量/互斥体/监视器等锁定机制中,通常通过将任务推入阻塞状态来实现锁定。我认为如果锁定可以实现这些事情,那么套接字锁定也可以通过相同的方式实现。
我不确定,我认为轮询不是一种有效的方法,特别是对于内核来说,因为内核总是忙于处理这么多任务。
thx.
不,阻塞套接字是在内核中实现的。该进程处于非执行状态,不消耗任何CPU时间。
内核可以自由地运行其他任务,直到某些外部活动导致它唤醒该任务。例如,网卡的硬件中断让其知道有数据要读取。内核读取它并将其推送到网络堆栈,最终唤醒应用程序来处理数据。
定时器的工作方式相同,但有定时器中断。
内核might实际上是在后台轮询硬件,但不一定是……这完全取决于硬件的设计方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)