【发布时间】:2013-05-19 17:46:31
【问题描述】:
如果我有以下带有 select 调用的代码,并假设套接字 fds 大部分时间都没有为 I/O 做好准备,那么线程会占用 CPU 还是会休眠并让其他线程完成工作。 select() 是 CPU 密集型调用吗?
while(1)
{
select(maxfd, &rfds, NULL, NULL, NULL);
}
行为是否与超时 = 0(轮询类型)而不是 NULL 相同。
【问题讨论】:
-
无限期阻塞后select()如何恢复?谁来通知select被阻塞的线程?