1、中断体系
2、无名管道【半双工通讯】
只能用于父子历程,兄弟历程之间的通讯,且没有名字,称为无名管道,传输的数据是无花样的,双方可本身定义花样,不依赖于文件体系。
引荐:《PHP教程》
3、定名管道
用于无名管道没法完成的骚操纵 ,没任何关系的历程也能举行通讯【就是依赖于一个文件描述符,只不过这文件是一个 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 版本的细致内容,更多请关注ki4网别的相干文章!