首页
IT培训常见问题
企业资讯
学员活动
师资团队
图书教材
发布 : IT培训 发布时间:2023-04-26 15:18:22
select函数是否阻塞主要取决于参数timeout超时时间的值,timeout的取值决定了select的状态:
1、timeout传入NULL,则select为阻塞状态,即需要等到监视文件描述符集合中某个文件描述符发生变化才会返回;
2、timeout置为0秒、0微秒,则select为非阻塞状态,不管文件描述符是否有变化,都立刻返回继续执行,文件无变化返回0,有变化返回一个正值。
select函数本身是阻塞的(与socket是否阻塞并没有关系), 直到:
1、有监测时间发生(返回 > 0)
2、超时(返回0)
3、select函数错误 (返回-1)
咨询还可获得
对应免费课程