epoll 程序不响应_网络程序并发的处理一览

最近在研究Swoole,Swoole选用了典型的Reactor模式处理并发。本文对并发处理的典型方法做一个说明。与swoole本身关系不大。

之后关于swoole会有PHP如何处理多进程/多线程,swoole扩展解决什么问题的讨论。


0 概述

服务器端程序,一个常见的问题就是要处理大量并发连接。处理并发,有一些典型的方案,例如:

  • 多进程|多线程

  • IO复用

  • 多进程|多线程与IO复用组合

1 多进程|多线程

最早的并发解决方案应该是多进程,从 Unix 系统诞生就开始有了进程的概念。服务器每当接收到客户端的连接就创建一个进程(fork()),用于完成接收请求accept,读数据read,处理process,写数据write,根据是否需要选择执行关闭[close]。多进程模式又很麻烦的问题,例如进程间通讯IPC(管道、消息队列、共享内存等)、进程的销毁创建和切换都是很耗资源的,因此并发量再大的时候,不能胜任。

之后又出现了多线程,与进程相比线程量级更轻,而且线程间是共享内存堆栈的,所以线程间通信更容易。但同样系统OS管

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值