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 @ 操作
html 来自http://stackoverflow.com/questions/4702204/android-market-detailsid-not-working-for-app
Educational Codeforces Round 67 (Rated for Div. 2) B题前缀+二分补题ING系列