Swoole目前总共有三种[运行模式](https://wiki.swoole.com/wiki/page/353.html),默认为多进程模式(`SWOOLE_PROCESS`)。
```
# Base模式(SWOOLE_BASE)
传统的异步非阻塞Server,reactor和worker是同一个角色。TCP连接是在worker进程中维持的。
如果客户端连接之间不需要交互,可以使用BASE模式。如Memcache、Http服务器等。
# 线程模式
多线程Worker模式,Reactor线程来处理网络事件轮询,读取数据。得到的请求交给Worker线程去处理。
缺点:一个线程发生内存错误,整个进程会全部结束。
由于PHP的ZendVM在多线程模式存在内存错误,多线程模式在v1.6.0版本后已关闭。
# 进程模式
与多线程Worker模式不同的是,线程换成了进程。Reactor线程来处理网络事件轮询,读取数据。得到的请求交给Worker进程去处理。适合业务逻辑非常复杂的场景。如WebSocket服务器等。
```
``` php
$serv = new swoole_server(string $host, int $port, int $mode = SWOOLE_PROCESS, int $sock_type = SWOOLE_SOCK_TCP);
```