select()-ing for ready-to-write fds 会导致繁忙的循环吗?

Posted

技术标签:

【中文标题】select()-ing for ready-to-write fds 会导致繁忙的循环吗?【英文标题】:Do select()-ing for ready-to-write fds cause a busy loop? 【发布时间】:2017-01-04 02:03:39 【问题描述】:

通常我们使用 select() 来等待准备读取的套接字。但是,如果 writefds 也被传递给 select,那么它会在 fds 可读或可写时立即返回。问题是套接字在大多数情况下都是可写的。这不会导致繁忙的循环吗?

【问题讨论】:

【参考方案1】:

只有当你有东西要写时,你才应该等待 writable。读取也是如此——只有在准备好接收数据时才等待读取。在每次成功的可写检查后应该有write(),在每次成功的可读检查后应该有read()

满足这些标准,您不能引入繁忙的等待循环,因为您的流不是无限的或套接字缓冲区不是无限的。

【讨论】:

以上是关于select()-ing for ready-to-write fds 会导致繁忙的循环吗?的主要内容,如果未能解决你的问题,请参考以下文章

UserListError.ADVERTISER_NOT_WHITELISTED_FOR_USING_UPLOADED_DATA @ 操作

排序算法(更新ing...)

ing

html 来自http://stackoverflow.com/questions/4702204/android-market-detailsid-not-working-for-app

Educational Codeforces Round 67 (Rated for Div. 2) B题前缀+二分补题ING系列

C相关的常见错误(更新ing)