多进程命名管通通信【无血缘关系进程】PHP 版本-php教程

资源魔 31 0
过程通讯:

一、中缀零碎

二、知名管道【半双工通讯】

只能用于父子过程,兄弟过程之间的通讯,且不名字,称为知名管道,传输的数据是无格局的,单方可本人界说格局,没有依赖于文件零碎。

保举:《PHP教程》

三、定名管道

用于知名管道无奈完成的骚操作 ,没任何干系的过程也能进行通讯【就是依赖于一个文件形容符,只不外这文件是一个 FIFO 类型的文件即管道文件,恪守 FIFO 准则,即行列步队进步前辈先出】

PS:务必理解过程梗阻,非梗阻原理,管道文件,过程【运转状态转移】

使用场景举例阐明: 如应用 php 的 socket API 编写一个相似 workerman 的网络框架,能够做对立中缀旌旗灯号事情解决

中缀解决顺序只担任承受中缀申请,经过管道写端写入数据,主过程经过监听文件形容符上的事情【可读事情【能够暗里去撸一下 stream socket 相干 API,和理解下 IO 复用函数的应用办法】再解决。没有会让中缀解决顺序期待太长的工夫。

当然经过定名管道也能够完成跨言语过程间的通讯。

$filePath = $argv[1];
if (posix_mkfifo($filePath,0666)<0){
    fprintf(STDOUT,"定名管道创立谬误");
    exit(0);
}
$fd = fopen($filePath,"w");
while (is_resource($fd)){
    fprintf(STDOUT,">");
    $data = fgets(STDIN);
    if ($data){
        fwrite($fd,$data,strlen($data));
    }
}
exit(0);
$filePath = $argv[1];
if (posix_mkfifo($filePath,0666)<0){
    fprintf(STDOUT,"定名管道创立谬误");
    exit(0);
}
$fd = fopen($filePath,"r");
while (is_resource($fd)){
    $data = fgets($fd);
    if ($data){
        fwrite(STDIN,$data,strlen($data));
    }
}
exit(0);

以上就是多过程定名管统统信【无血统关系过程】PHP 版本的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学

抱歉,评论功能暂时关闭!