科技知識動態:php如何實現多線程

導讀跟大家講解下有關php如何實現多線程,相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說php如何實現多線程,小編也收集到了有關

跟大家講解下有關php如何實現多線程,相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說php如何實現多線程,小編也收集到了有關php如何實現多線程的相關資料,希望大家看到了會喜歡。

php中可以實現多線程,是一種利用舊的exec函數通過異步處理方法實現多線程的,exec函數本身就是一個執行外部程序的php函數。下面我們就來具體看看php多線程的實現方法。

推薦手冊: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 需要使用線程安全版本,這是多線程和安全的實現。

從官方下載線程安全版本的 PHP。

訪問以下內容并從圖中的紅框下載。

http://www.php.net/downloads.php

微信截圖_20190125140002.png

此外,對于線程安全安裝,您需要使用configure選項指定-enable-maintainer-zts。

./configure --enable-maintainer-zts

根據需要,也可以安上Apache和mysql的選項。

用以下命令確認了php的版本就可以了。

php -v

②pthreads的安裝

我們來下載zip格式。

https://github.com/krakjoe/pthreads/archive/master.zip

解壓zip,移動到解壓縮文件,然后執行phpize。

如果您在PHP模塊列表上運行pthreads,則可以執行以下操作。

php -m

根據環境的不同,這一塊的設定也會有所不同,可以用環境名+pthreads等進行檢索來尋找信息。

③嘗試使用多線程

示例如下

<?phpclass pthreadsTest extends Thread { public function run () { sleep(5); }}$ts1 = new pthreadsTest();$ts1->start(); $ts2 = new pthreadsTest();$ts2->start(); ?>

因為sleep(5)被調用兩次,所以需要10秒,但實際上它將是5秒。

相關文章推薦:1.PHP中多線程的實現方法 2.php實現多線程的三種方法 相關視頻推薦:1.獨孤九賤(4)_PHP視頻教程

以上就是php如何實現多線程的詳細內容,更多請關注php中文網其它相關文章!

來源:php中文網

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!