在Swoole中通過swoole_process 類來創(chuàng)建子進(jìn)程,構(gòu)造函數(shù)原型如下:
1、$function 是一個(gè)回調(diào)函數(shù),子進(jìn)程創(chuàng)建成功后執(zhí)行此回調(diào)函數(shù)
2、$redirect_stdin_stdout 參數(shù)可以重定向子進(jìn)程的標(biāo)準(zhǔn)輸入和輸出
3、$pipe_type 為管道類型
具體參數(shù)含義可以參考Swoole官方文檔,下面我們將在一個(gè)進(jìn)程中創(chuàng)建子進(jìn)程,并進(jìn)行進(jìn)程間通信。
在命令行執(zhí)行 php process.php,運(yùn)行后的結(jié)果如下:
這就是進(jìn)程之間通過管道通信的例子,創(chuàng)建子進(jìn)程,并設(shè)定回調(diào)函數(shù)。Event::add 將管道文件描述符 $process->pipe 加入到事件循環(huán)中。第一行輸出的hello world 是回調(diào)函數(shù)輸出的,而 read:aaaaaa 是事件循環(huán)執(zhí)行時(shí)從管道里讀出的數(shù)據(jù)。