返回信息流你们会不会用到 select() 函数 和 (u)sleep()函数?
以下的模型有用到吗 "{}"类或函数域
a.
while(iscontinue){
......
{
......
/* timeout > 0 */
select(fd, , , , &tv);
......
}
......
}
b.
while(iscontinue){
/* usec > 0 */
usleep(sleepTime)
......
{
......
/* timeout = 0 */
select(fd, , , , &tv);
......
}
......
}
哪个对性能影响小一些,哪个更常用到呢?
这是一条镜像帖。来源:北邮人论坛 / soft-design / #22106同步于 2007/11/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
【调查】关于Linux下Socket编程的模型
acheronfire
2007/11/2镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
如果只用来干一种事情,比如监听端口 a b 都行
但是如果要处理多种事情,比如服务器,要监听客户端的连接,检查有没有新的连接建立,同时又要给已建立连接的客户端发送消息,还要处理消息队列, b 更好一些
我在想,能不能把监听端口和检查消息队列都塞到select()里。
我还见过有人用select() 代替 (u)sleep() 似乎这样控制时间的精度更高,不过我没试过。
为了高精度的延时,select()确实可以代替usleep(),不过一般情况下usleep()足矣
【 在 acheronfire 的大作中提到: 】
: 如果只用来干一种事情,比如监听端口 a b 都行
: 但是如果要处理多种事情,比如服务器,要监听客户端的连接,检查有没有新的连接建立,同时又要给已建立连接的客户端发送消息,还要处理消息队列, b 更好一些
: 我在想,能不能把监听端口和检查消息队列都塞到select()里。
: ...................