碼雲 code 地址php
基於PCNTL的PHP併發處理 封裝類github
整理相關的一些資料,封裝了下基於 PCNTL 的多進程編程
生產環境已經校驗了,能夠放心大膽地使用數組
// 任務數組參數,以此做爲切分進程的量化依據,默認被調用方法的第一個參數 $task = range(1, 12); // 默認 5 個進程,能夠進行配置 // 設置的進程數是最大能夠取到的進程數 // 會根據任務量 和 進程數進行靈活設定,會根據 count($task)/5 對每一個進程內的任務數進行由多到少的分配,後面不足的將再也不啓動新的進程了 $sync = new MultiProcessPcntl($task); // $sync = new MultiProcessPcntl($task, 6); // 支持調用類方法 // 支持傳參 $sync->call('test', 'append arg');
PHP自己不支持多進程,但基於Linux的PHP擴展PCNTL卻能夠提供多進程編程。併發
PCNTL 函數 - PHP 官網手冊中對PCNTL的說明,更細化的需求能夠研究深化。app