社区
Linux/Unix社区
帖子详情
使用非阻塞式IO接收客户数据?
guoxiny
2003-07-12 09:37:33
我在进行网络编程的时候,遇到一个困惑的问题。
我在一个主循环里面使用非阻塞IO,等待客户连接。accept返回后,创建一个新的进程用来处理这个客户的请求。代码如下(删了很多):
....
while(1)
{
select(....);
recv(....)
}
....
我的问题是在非阻塞IO的情况下,我的新进程的循环在运行到select函数时,是否会在没有数据来的时候阻塞呢?如果不会,那么循环就会不断的运行,这样会很耗CPU,这个时候大家是如何解决的呢?
...全文
73
4
打赏
收藏
使用非阻塞式IO接收客户数据?
我在进行网络编程的时候,遇到一个困惑的问题。 我在一个主循环里面使用非阻塞IO,等待客户连接。accept返回后,创建一个新的进程用来处理这个客户的请求。代码如下(删了很多): .... while(1) { select(....); recv(....) } .... 我的问题是在非阻塞IO的情况下,我的新进程的循环在运行到select函数时,是否会在没有数据来的时候阻塞呢?如果不会,那么循环就会不断的运行,这样会很耗CPU,这个时候大家是如何解决的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lonelytao
2003-07-12
打赏
举报
回复
我也是刚学Linux,不过在看过北邮出版社的那本《linux网络编程》后对此有点了解。我觉得select的特殊意义就在于它是类似于中断的方法,自己挂起(直到超时),如果在期间数据来到并符合自己摄制的条件,Linux内核会将你的这个进程唤醒,这样你的进程不会不断运行,(除非来了很多数据)用select函数的意义就在于此,建议你去看看那本书的这部分,作者对socket编程进行了编类,并对每一种类进行了使用级别的原理介绍。
Good Luck!
wwwunix
2003-07-12
打赏
举报
回复
在select中设置读写文件描述符(socket)或设置超时。
铖邑
2003-07-12
打赏
举报
回复
会不会阻塞要看你SELECT的参数,如果你设置了超时参数,就会在有事件的时候返回,否则要等到超时。另外,你用专门的进程处理一个连接,为什么怕阻塞呢?
ari
2003-07-12
打赏
举报
回复
我的问题是在非阻塞IO的情况下,我的新进程的循环在运行到select函数时,是否会在没有数据来的时候阻塞呢?如果不会,那么循环就会不断的运行,这样会很耗CPU,这个时候大家是如何解决的呢?
man select
在select的读写描述字集中添加描述字,如果没有可读、写的描述字,会阻塞的。
阻塞
IO
和
非阻塞
IO
的区别
当然从思想上可以这样类比,但方
式
是完全不同的,下面说说在JAVA里面阻塞
IO
和
非阻塞
IO
的区别 在JDK1.4中引入了一个N
IO
的类库,使得Java涉及
IO
的操作拥有阻塞
式
和
非阻塞
式
两种,问一下阻塞
IO
与
非阻塞
IO
有什么区别?...
浅谈5种
IO
模型——阻塞
式
IO
、
非阻塞
式
IO
、信号驱动
IO
、多路复用
IO
及异步
IO
5种
IO
模型5种
IO
模型1、背景2、
IO
模型2.1、阻塞
式
IO
(blocking
IO
)2.2、
非阻塞
式
IO
(nonblocking
IO
)2.3、多路复用
IO
(
IO
multiplexing)2.4、信号驱动
IO
(signal driven
IO
)2.5、异步
IO
( asynchronous
IO
)参考 5种
IO
...
阻塞
IO
和
非阻塞
IO
阻塞
IO
常见的有我们的 tomcat , java多线程,阻塞
IO
是指,线程如果没执行完,就不能释放资源,处理下一个请求(tomcat线程池中的线程资源,一个线程没执行完,不释放,就不能会线程池,...N
IO
非阻塞
IO
:Netty , Red
计算机网络——阻塞
IO
、
非阻塞
IO
、
IO
多路复用
网络
IO
模型有5种:阻塞
IO
、
非阻塞
IO
、
IO
多路复用、信号驱动
IO
、异步
IO
本文仅对阻塞
IO
、
非阻塞
IO
、
IO
多路复用进行讲解 在网络通信中,对
数据
进行收发在发送端和
接收
端的相应设备上会进行如下顺序的传递...
阻塞
IO
与
非阻塞
IO
在《Unix网络编程》一书中提到了五种
IO
模型,分别是:阻塞
IO
、
非阻塞
IO
、多路复用
IO
、信号驱动
IO
以及异步
IO
。 1、阻塞
IO
模型 最传统的一种
IO
模型,即在读写
数据
过程中会发生阻塞现象。 当用户线程发出
IO
请求...
Linux/Unix社区
23,114
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章