PHP本身是不是支援多線程的,不過我們可以藉助其他的方法來實現多線程,例如 shell 服務,例如 web 伺服器,那麼要藉助shell腳本實作多線程,該如何去操作呢?
本文我們主要介紹的是了PHP+shell實作多執行緒的方法,大家可以參考一下。
這裡介紹如何借助shell腳本實作多執行緒。
先寫簡單的php程式碼,這裡為了讓腳本執行時間更長,方便看效果,先看下test.php的程式碼:
PHP程式碼:
<?php for ($i=0;$i<10;$i++) { echo $i; sleep(10); } ?>
在看下shell腳本的程式碼,非常簡單
#!/bin/bash for i in 1 2 3 4 5 6 7 8 9 10 do /usr/bin/php -q /var/www/html/test.php & done
注意到在請求php程式碼的那行有一個&符號嗎,這個是關鍵,不加的話是不能進行多執行緒的,&表示講服務推送到後台執行,因此,在shell的每次的循環中不必等php的程式碼全部執行完在請求下一個文件,而是同時進行的,這樣就實現了多線程,下面運行下shell看下效果,這裡你將看到10個test.php進程再跑,再利用linux的計時器,定時請求這個shell,在處理一些需要多線程的任務,例如,批量下載時,非常好用!
總結:線程是java中一個很不錯的東西,很多朋友說在php中不可以使用PHP多線程了,其實那是錯誤的說法,本文就是介紹PHP中多線程的一個實作方法。
希望這篇文章所述對大家的php程式設計有幫助。
相關推薦:
以上是php多執行緒一種實作方法—shell的詳細內容。更多資訊請關注PHP中文網其他相關文章!