ilustrar
1. Pipes são um meio comumente usado de comunicação multiprocesso. Os pipes são divididos em pipes não nomeados e pipes nomeados.
2. Os pipes nomeados só podem ser usados para comunicação entre processos relacionados, enquanto os pipes nomeados podem ser usados para qualquer processo no mesmo host.
Exemplo
$pipe_path = '/data/test.pipe'; if(!file_exists($pipe_path)){ if(!posix_mkfifo($pipe_path,0664)){ exit("criar erro de pipe!"); } } $pid = pcntl_fork(); se($pid == 0){ // Processo filho, grava dados no pipe $file = fopen($pipe_path,'w'); enquanto (verdadeiro){ fwrite($arquivo,'olá mundo'); $rand = rand(1,3); dormir($rand); } exit('fim filho!'); }outro{ // Processo pai, lê dados do pipe $file = fopen($pipe_path,'r'); enquanto (verdadeiro){ $rel = fread($arquivo,20); eco "{$rel}n"; $rand = rand(1,2); dormir($rand); } }
O texto acima é uma introdução ao pipeline de comunicação multiprocesso do PHP. Espero que seja útil para todos.