php 開啟多執行緒 php如何實現多執行緒

2021-10-22 22:48:35 字數 1380 閱讀 3577

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機制的實現...