multi-process-pcntl 基於PCNTL的PHP併發處理 封裝類

聲明

碼雲 code 地址php

github code 地址git

multi-process-pcntl

基於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

相關文章
相關標籤/搜索