PHP多进程模型之Swoole扩展

Swoole提供PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写。

下面介绍一个简单例子:

1、实例分析

我们来使用实例进行分析:

/**
* 启动服务
*/
public function start()

$serv = new \swoole_server('127.0.0.1', '9501', SWOOLE_PROCESS, SWOOLE_SOCK_TCP);//默认是多进程模式、TCP类型
        $serv->on('connect', array($this, 'onConnect'));
        $serv->on('receive', array($this, 'onReceive'));
        $serv->on('close', array($this, 'onClose'));
        $serv->set(array(
            'worker_num' => 4, //启动4个work进程
            'daemonize' => true,//是否后台运行
            'reactor_num'=>2,
        ));
        $serv->start();
}

继续在Shell中输入以下命令:

[finance@localhost user]$ pstree -ap|grep start.php
  |-php,23358 start.php
  |   |-php,23359 start.php
  |   |   |-php,23362 start.php
  |   |   |-php,23363 start.php
  |   |   |-php,23364 start.php
  |   |   `-php,23365 start.php

所有进程的根进程(23358),就是所谓的Master进程;而23359进程,则是Manager进程;最后的进程(23362-23365),是Worker进程。

事实上,一个多进程模式下的Swoole Server中,有且只有一个Master进程;有且只有一个Manager进程;却可以有n个Worker进程。

2、如果以SWOOLE_BASE模式启动,输入以下命令:

[finance@localhost user]$ pstree -ap|grep start
  |-php,24112 start.php
  |   |-php,24113 start.php
  |   |-php,24114 start.php
  |   |-php,24115 start.php
  |   `-php,24116 start.php

这种模式就是传统的异步非阻塞Server。在Reactor内直接回调PHP的函数。worker_num参数对与BASE模式仍然有效,swoole会启动多个Reactor进程。

 

 

 

 

参考文献:[swoole学习笔记]

转载于:https://www.cnblogs.com/webTechnology/p/8353081.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值