swoole历程间怎样通讯【swoole】,swoole
作者:搜搜PHP网发布时间:2019-12-03分类:Swoole浏览:77

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网别的相干文章!
标签:swoole
相关推荐
- windows10如何运行thinkphp6+swoole_ThinkPHP教程,thinkphp6,swoole
- EasySwoole 基础入门_php教程
- swoole服务启动不了怎么办_swoole教程,swoole
- swoole提示找不到php.ini怎么办_swoole教程,swoole
- swoole属于是插件吗_swoole教程,swoole
- swoole如何实现直播_swoole教程,swoole
- swoole如何监听redis数据_swoole教程,swoole
- swoole如何管理集群_swoole教程,swoole
- swoole如何关闭守护进程_swoole教程,swoole
- swoole客户端无法连接怎么办_swoole教程,swoole
- Swoole排行
- 最新文章
- 广而告之