
иллюстрировать
1. Каналы — это широко используемые средства межпроцессного взаимодействия. Каналы делятся на безымянные и именованные каналы.
2. Безымянные каналы можно использовать только для связи между связанными процессами, тогда как именованные каналы можно использовать для любого процесса на одном хосте.
Пример
$pipe_path = '/data/test.pipe';
if(!file_exists($pipe_path)){
if(!posix_mkfifo($pipe_path,0664)){
exit("Ошибка создания канала!");
}
}
$pid = pcntl_fork();
если($pid == 0){
// Дочерний процесс, записывает данные в канал $file = fopen($pipe_path,'w');
пока (правда){
fwrite($file,'Привет, мир');
$ранд = рандом(1,3);
сон($ранд);
}
выход('дочерний конец!');
}еще{
// Родительский процесс, считываем данные из канала $file = fopen($pipe_path,'r');
пока (правда){
$rel = fread($file,20);
эхо "{$rel}n";
$ранд = рандом(1,2);
сон($ранд);
}
}Вышеупомянутое представляет собой введение в конвейер многопроцессного взаимодействия PHP. Надеюсь, оно будет полезно всем.