用php写shell,php与shell实现多线程的简单例子
php本身不支持多線程,但apache和linux是支持的,有了lamp與lnmp這樣的絕佳組合,再有了shell的鼎力相助,在php中實現多線程就不再那么困難了。
有如下的php代碼,每次循環sleep 5秒。
文件 sleeep.php 代碼:
復制代碼 代碼示例:
//for循環
for ($i = 0; $i < 10; $i++)
{
echo $i;
sleep(5);
}
接下來,就要shell上場了,調用php文件:sleep.php,代碼如下:
復制代碼 代碼示例:
#!/bin/bash
#edit by www.jbxue.com
for i in 1 2 3 4 5
do
/usr/bin/php -r -q /data/website/sleep.php &
done
注意:
以上代碼的關鍵點在于,要在請求php代碼的行尾加一個&符號,否則不能進行多線程的,&表示講服務推送到后臺執行。
因此,在shell的每次的循環中不必等php的代碼全部執行完在請求下一個文件,而是同時進行的,即實現了多線程。
運行下shell將看到10個test.php進程在跑,可以考慮結合下linux的定時器crontab,定時請求shell腳本,即可處理一些多線程的任務,比如批量上傳或下載等。
好了,有關php與shell結合實現多線程的例子,就介紹到這里了,希望對大家有所幫助。
總結
以上是生活随笔為你收集整理的用php写shell,php与shell实现多线程的简单例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 下载的文件损坏,PHP下载文件损
- 下一篇: php xml 增删改查,PHP实现对x