說實話,我一直在想php並行程式設計是個什麼樣子的,網上查資料寫的不多而且雜,決定根據大多數的資料總結一下。
php 多程序我認為是php原生程式設計裡最接近併發程式設計的,同時開始執行多個任務。
多程序:多個
程序(資源分配的最小單位)同時執行多個任務
如上圖所示,開闢了3個子程序,分別執行了3個不同的任務,同時開始執行這些互無關聯的程序。有點非同步的味道。
php多程序看看是很nb的,可以把那些耗時的 但又必須執行的查詢分成多個子程序查,
但是,php多程序不支援php-fpm和cgi模式,只能通過php-cli 模式,所以對於web頁面的請求,多程序的夢想破滅。
適用場景:
定時任務執行,且互斥耗時的任務(資料的批量插入,批量更新,日誌的批量操作)
下面舉個簡單的栗子:
class concurrency
public function run()
$i++;
}//等待程序關閉
for($i=0;$i
}$end = $this->microtime_float();
echo "\n執行時間",$end-$start;
} public function task($task_id)
else
} }$con = new concurrency();
$con->run();
列印結果:
2222
3333
執行時間3.0103249549866
程序(一) 多程序的呼叫
由於gil的存在,python中的多執行緒其實並不是真正意義的多執行緒,如果想要充分地使用多核cpu的資源,在python中大部分情況需要使用多程序。multiprocessing包是python中的多程序管理包。與threading.thread類似,他利用multiprocessing.proc...
PHP多程序程式設計(一)
雖然php 中,多程序用的比較的少。但是畢竟可能是會用到了。我最近就遇到這樣乙個問題,使用者提交幾百個url以後,要讀出這個url 中的標題。當然,你不希望使用者等待的太久,10s 鐘應該給出個答案。但是,本身,你要獲取乙個url 的標題,少的要 0.1s 多的要好幾秒。顯然,採用單個執行緒的方式是...
PHP多程序程式設計(一)
雖然php 中,多程序用的比較的少。但是畢竟可能是會用到了。我最近就遇到這樣乙個問題,使用者提交幾百個url以後,要讀出這個url 中的標題。當然,你不希望使用者等待的太久,10s 鐘應該給出個答案。但是,本身,你要獲取乙個url 的標題,少的要 0.1s 多的要好幾秒。顯然,採用單個執行緒的方式是...