// 普通形式
$process
=new
swoole_process
('callback_function'
,false
,false);
// oop形式
swoole_process:
:__construct
(callable $function
,$redirect_stdin_stdout
=false
,$create_pipe
=false);
// 啟用命名空間
swoole\process::
__construct
(callable $function
,$redirect_stdin_stdout
=false
,$create_pipe
=false
)
這裡需要注意的是,第
二、第三個引數要填false或者0,不啟用管道。
swoole_process-
>
usequeue
(int $msgkey=0
, int $mode=2
);
usequeue方法接受2個可選引數。
如果建立訊息佇列失敗,會返回false。可使用swoole_strerror(swoole_errno()) 得到錯誤碼和錯誤資訊。
使用模式2後,建立的子程序無法進行單獨通訊,比如發給特定子程序。
$process
物件並未執行start,也可以執行push/pop向佇列推送/提取資料
非阻塞模式
$process
->
usequeue
($key
,$mode
| swoole_process:
:ipc_nowait
);
在非阻塞模式下,佇列已滿呼叫push方法、佇列已空調用pop方法時將不再阻塞立即返回。
function swoole_process-
>
start
()
process-
>
push
(string $data
);
string process-
>
pop(int $maxsize
=8192
);
process-
>
exit
(int $status=0
);
子程序退出後,在父程序中執行process::wait可以得到子程序退出的事件和狀態碼。
// 1.定義子程序物件陣列
$workers=[
];// 2.最大程序數
$workers_num=2
;// 3.批量建立子程序
for($i=
0;$i<
$workers_num;$i
++)// 子程序執行函式
function
doprocess
(swoole_process $process
)// 主程序向 子程序新增資料
foreach
($workers
as$pid
=>
$process
)// 等待子程序結束,**資源
for($i=
0;$i<
$workers_num;$i
++)
程序04 訊息佇列
建立訊息佇列 1.建立ipc的通訊物件的key 金鑰 ftok include include key t ftok const char pathname,int proj id 引數1 選擇乙個路徑填入 引數2 隨意填入乙個整形資料 返回值 ftok 根據兩個引數生成一把金鑰 key t key...
Python 02高階 04多程序多執行緒
tags python 多程序 併發 高階 必備知識 2019 年 本節主要描述 1.python程序執行緒協程併發等術語 2.以及如何高效利用python編寫高效能程式.協程是一種使用者級的輕量級執行緒 應用場景多用於 io 密集型,他有高併發的特點,不適用於 cpu 密集型的場景。協程主要是利用...
LINUX學習筆記15 程序間通訊4訊息佇列
a 本質 訊息鍊錶 b 分類 1.posix訊息佇列 可移植作業系統介面 2.系統v 隨核心持續的,只有在核心重啟和人工刪除,才會被刪除。每個訊息佇列對應唯一的鍵值 c 獲取鍵值 key t ftok char pathname,char proj 1.作用 返回檔名對應的鍵值,本質是個檔案 2.i...