Swoole是否具备多线程处理能力?
- 内容介绍
- 文章标签
- 相关推荐
本文共计529个文字,预计阅读时间需要3分钟。
Reactor线程+Swoole Server的主进程是一个多线程的程序。其中,有一组非常重要的线程,称为Reactor线程。它负责真正处理TCP连接,接收和发送数据。当Swoole Server接收到新的连接后,主线程会创建一个Reactor线程来处理这个连接。
Reactor线程
Swoole\Server的主进程是一个多线程的程序。其中有一组很重要的线程,称之为Reactor线程。它就是真正处理TCP连接,收发数据的线程。
Swoole的主线程在Accept新的连接后,会将这个连接分配给一个固定的Reactor线程,并由这个线程负责监听此socket。在socket可读时读取数据,并进行协议解析,将请求投递到Worker进程。在socket可写时将数据发送给TCP客户端。
分配的计算方式是fd % serv->reactor_num
由于PHP语言不支持多线程,因此Swoole使用多进程模式。在多进程模式下存在进程内存隔离,在工作进程内修改global全局变量和超全局变量时,在其他进程是无效的。
本文共计529个文字,预计阅读时间需要3分钟。
Reactor线程+Swoole Server的主进程是一个多线程的程序。其中,有一组非常重要的线程,称为Reactor线程。它负责真正处理TCP连接,接收和发送数据。当Swoole Server接收到新的连接后,主线程会创建一个Reactor线程来处理这个连接。
Reactor线程
Swoole\Server的主进程是一个多线程的程序。其中有一组很重要的线程,称之为Reactor线程。它就是真正处理TCP连接,收发数据的线程。
Swoole的主线程在Accept新的连接后,会将这个连接分配给一个固定的Reactor线程,并由这个线程负责监听此socket。在socket可读时读取数据,并进行协议解析,将请求投递到Worker进程。在socket可写时将数据发送给TCP客户端。
分配的计算方式是fd % serv->reactor_num
由于PHP语言不支持多线程,因此Swoole使用多进程模式。在多进程模式下存在进程内存隔离,在工作进程内修改global全局变量和超全局变量时,在其他进程是无效的。

