做者:於立(wx/yulichenr)
敬告:聯繫我,請註明來源和來意
本人開發有不少年了,可是不多整理分享,現在趁着悠閒就爲你們服務了,但願更多地體驗到編程帶來的快樂。
職場多年下來,技術也算是逐漸地有些積累,可是更重要的是對自身有了更加合理的人生定位。或許,人生的意義,就在於此處的感悟吧。
有對 閱讀和寫做; 自由工做者; 對大數據信息有領悟者 ,歡迎叨擾。php
基於PCNTL的PHP併發處理 封裝類。git
對PHP語言底層擴展的的深度解讀和生產應用。 github
整理相關的一些資料,封裝了下基於 PCNTL 的多進程數組
生產環境已經校驗了,能夠放心大膽地使用bash
$ composer require yuli/multi-process-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卻能夠提供多進程編程。app
PCNTL 函數 - PHP 官網手冊中對PCNTL的說明,更細化的需求能夠研究深化。composer