传统代理服务器的阻塞调用和nginx服务器的非阻塞调用

阻塞调用:

阻塞调用

调用accept,当ACCEPT队列处理完毕但未收到关闭连接ACK 或者 队列直接为空的时, 此时阻塞调用会在这个状态一直等待连接的新请求, 这个等待状态中, 进程就不会处理任何其他连接请求, 只会创建一个新的进程去调用 accept 去接受新的连接, 原进程会一直等待,直到收到关闭连接的 ACK 或者等待超, 这种机制会引起大量的进程间的主动切换, 而切换进程的时间消耗在随着并发数量的增加成指数性增长, 在高并发场景下会影响处理请求的效率.

非阻塞调用(nginx):

nginx非阻塞调用

nginx 采用非阻塞调用, 进程在时间片内, 当ACCEPT队列处理完毕但未收到关闭连接ACK 或者 队列直接为空的时, 此时非阻塞调用会直接返回一个错误码 ----- EAGAIN , 我们可以用代码来决定 是继续等待一段时间这个连接或者直开始处理其他新的连接 , 等待时间过后,进程直接去调用 accept 去接受新的连接, 当原连接请求注入队列之后,进程可根据调度去继续执行原连接的请求, 大大减少了进程的切换, 在高并发场景下具有巨大的优势.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值