多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
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); ```