对于nginx的思考2---事件处理

nginx的事件处理函数ngx_process_events_and_timers,linux上最终会调用 ngx_epoll_process_events。

之后epoll_wait 后得到相应的事件,再做相应的处理,即监听与处理是在同一个线程中处理的,这样会有几个问题:

1.如果有多个事件,必须等待上一个事件处理完毕才能处理下一个。

2.同一个connection,只能按”接收-发送-接收-发送“这样的顺序进行,而不能实现真正的双工。


另外,ngx_epoll_add_event/ngx_epoll_add_connection函数已经限制一个进程能只能一个接收处理线程,而只能采取多进程的方式。

对于流媒体协议的处理,以上明显是瓶颈。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值