hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP框架 - Swoole - 正文 请牢记本站网址www.sosophp.cn

swoole历程间怎样通讯【swoole】,swoole

2019-12-03Swoole搜搜PHP网48°c
A+ A-

Swoole历程间通讯的体式格局

管道pipe

管道用于历程之间的数据交互,Linux体系自身供应了pipe函数用于建立一个半双工通讯管道。半双工的通讯体式格局中数据只能单向活动(一端只读一端只写),只能在具有亲缘关联(父子历程)的历程之间运用。 (引荐进修: swoole视频教程)

管道是历程间通讯IPC中最基本的体式格局,管道有两种范例分别是定名管道、匿名管道。

匿名管道:特地用于具有血缘关联的历程之间,完成数据通报。定名管道:能够用在任何两个历程之间,Swoole中的管道都是匿名管道。

在Swoole中应用eventfd和UnixSock封装了两种管道,使得历程之间的通讯越发天真。

Swoole的Process模块内置了管道的体式格局用于历程间通讯,在构建Process实例时只需开启了$pipe_type选项,Swoole底层会自动建立一个管道,这里须要申明的时,虽然名字上叫做管道,但实际上在新版Swoole中底层通讯是经由过程UnixSock完成的,所以并非真正意义上的Linux Pipe。

建立历程

swoole_process::__construct(
callable $function, 
bool $redirect_stdin_stdout = false, 
int $pipe_type = SOCK_DGRAM, 
bool $enable_coroutine = false
);

管道范例$pipe_type可分为三种:

0示意不建立管道

1示意建立SOCK_STREAM范例的管道

2示意建立SOCK_DGRAM范例的管道

当启用$redirect_stdin_stdout后,$pipe_type选项将疏忽用户参数,强制为1。

管道描述符

当历程被fork出来后,父历程和子历程中的Process对象会被设置上一个名为pipe的成员变量,存放着底层UnixSocket的描述符,父历程和子历程能够经由过程这个管道描述符来发送数据,也能够直接挪用Process供应的read/write接口来收发数据。

object(Swoole\Process)#1 (6) {
  ["pipe"]=>int(4)
  ["callback"]=>NULL
  ["msgQueueId"]=>NULL
  ["msgQueueKey"]=>NULL
  ["pid"]=>int(287)
  ["id"]=>NULL}

管道读写

swoole_process->write(string $data) 向历程的管道中写入数据

swoole_process->read(int $buffer_size = 8192) 从历程的管道中读取数据

以上就是swoole历程间怎样通讯的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
swoole历程间怎样通讯【swoole】,swoole

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签: