php中可以實現多執行緒,是一種利用舊的exec函式通過非同步處理方法實現多執行緒的,exec函式本身就是乙個執行外部程式的php函式。下面我們就來具體看看php多執行緒的實現方法。
我們首先來看乙個示例<?php
class execmulti {
function multithreadtest {
exec("php static_massive.php > /dev/null &");
echo "處理完成了";
當執行上述操作時,即使在耗時的處理結束之前也顯示處理完成。exec("php static_massive.php > /dev/null &");
由於「 > / dev / null& 」返回的值丟失,我們不會等待響應。
因此,處理完成指示比耗時處理更快。
但是,該方法不知道耗時的處理何時結束。
不要忘記考慮採取日誌的執行,登入db等方法向使用者傳遞執行結果。
用於多執行緒的方法(pthreads)
最後,介紹使用php擴充套件模組pthreads的方法。
它可以比上面使用exec的方法更簡單。
①配置環境並安裝php
請使用vagrant等準備喜歡的環境。
php 需要使用執行緒安全版本,這是多執行緒和安全的實現。
此外,對於執行緒安全安裝,您需要使用configure選項指定-enable-maintainer-zts。./configure --enable-maintainer-zts
根據需要,也可以安上apache和mysql的選項。
用以下命令確認了php的版本就可以了。php -v
②pthreads的安裝
解壓zip,移動到解壓縮檔案,然後執行phpize。
如果您在php模組列表上執行pthreads,則可以執行以下操作。php -m
根據環境的不同,這一塊的設定也會有所不同,可以用環境名+pthreads等進行檢索來尋找資訊。
③嘗試使用多執行緒
示例如下<?php
class pthreadstest extends thread {
public function run () {
sleep(5);
$ts1 = new pthreadstest();
$ts1->start();
$ts2 = new pthreadstest();
$ts2->start();
因為sleep(5)被呼叫兩次,所以需要10秒,但實際上它將是5秒。
PHP開啟多執行緒擴充套件
php從5.3開始支援多執行緒pthreads擴充套件,並同時支援window和linux。pthreads可以實現多工同步或非同步執行,它提供了建立多執行緒應用所需的全套工具,預設未安裝。安裝 window系統下 說明 3.0版本及以上為php7專用,3.0版本以下為php5專用。這裡以php5....
PHP多執行緒的實現(PHP多執行緒類)
通過web伺服器來實現php多執行緒功能。當然,對多執行緒有深入理解的人都知道通過web伺服器實現的多執行緒只能模仿多執行緒的一些效果,並不是真正意義上的多執行緒。但不管怎麼樣,它還是能滿足我們的一些需要的,在需要類似多執行緒的功能方面還是可以採用這個類。view source print?01.0...
多執行緒程式設計 PHP 實現
前些天幫同事查乙個問題,第一次接觸到了 php 的多執行緒,原以為 php 普遍都是單執行緒模型,並不適合多執行緒領域,花些時間翻了幾個多執行緒的專案原始碼之後,發現 php 的多執行緒也頗有可取之處,活用起來,用來解決某些問題竟然非常適合。於是找了幾篇文章看了下 php 多執行緒tsrm機制的實現...