recv函数从开始被调用到最后返回整个流程是怎样的

 我来答
匿名用户
2017-11-17
展开全部
一般来讲,像recv这类的系统调用,现在一般是通过sysenter进入到内核态(以前是int 2e),如果这个调用可能需要被阻塞的话,现在一般不会轮询,因为那样会耗费大量的cpu资源,一般的做法是线程等在一个同步对象上,这个时候线程会被挂起,当期望的事情发生了(比方说数据到了),线程又会恢复执行。当然,什么叫做“等在一个同步对象上”,这在不同的系统上可以有不同的实现,考虑一个简单的方法,你可以让线程暂停运行,然后放到一个专门的队列里,等需要的时候你再把他拿出来执行。

需要详细的信息,lz可以参考任何一本足够厚的操作系统教材,比方说Operating system concept
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式