欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實例講解php實現(xiàn)多線程

 更新時間:2019年01月27日 15:22:55   投稿:laozhang  
在本篇文章里小編給大家分享了關于php實現(xiàn)多線程的相關知識點以及實例內(nèi)容,以后興趣的朋友們學習下。

我們首先來看一個示例

<?php
 
class execMulti {
 function MultithreadTest {
  exec("php static_massive.php > /dev/null &");
 
  echo "處理完成了";
 }
}
?>

當執(zhí)行上述操作時,即使在耗時的處理結(jié)束之前也顯示處理完成。

exec("php static_massive.php > /dev/null &");

由于“ > / dev / null& ”返回的值丟失,我們不會等待響應。

因此,處理完成指示比耗時處理更快。

但是,該方法不知道耗時的處理何時結(jié)束。

不要忘記考慮采取日志的執(zhí)行,登錄DB等方法向用戶傳遞執(zhí)行結(jié)果。

用于多線程的方法(pthreads)

最后,介紹使用PHP擴展模塊pthreads的方法。

它可以比上面使用exec的方法更簡單。

①配置環(huán)境并安裝php

請使用vagrant等準備喜歡的環(huán)境。

php 需要使用線程安全版本,這是多線程和安全的實現(xiàn)。

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

訪問以下內(nèi)容并從圖中的紅框下載。

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

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

./configure --enable-maintainer-zts

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

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

php -v

②pthreads的安裝

我們來下載zip格式。

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

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

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

php -m

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

③嘗試使用多線程

示例如下

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

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

相關文章

最新評論