PHP+shell实现多线程

php根本不支持多线程啊,没错,php本身是不支持多线程,但是别忘了php的好搭档,apache和linux可是支持的,lamp才是 最佳组合,还在使用win服务器的现在知道为什么要用linux吧?写个简单的代码演示下如何借助 shell脚本实现多线程。

先写个简单的php代码,这里为了让脚本执行时间更长,方便看效果,sleep一下,先看下sleeep.php的代码:
PHP代码:

<?php
for ($i =0; $i <10; $i++)
{
   echo $i;
   sleep(5);
}

在看下shell脚本的代码,非常简单.

代码:

#!/bin/bash
for i in12345
do
  /usr/bin/php -r -q /data/website/sleep.php &
done

注意:

在 请求php代码的那 行末尾有一个&符号,这个是关键,不加的话是不能进行多线程的,&表示讲服务推送到后台执行,因此,在shell的每次的循环中不必等 php的代码全部执行完在请求下一个文件,而是同时进行的,这样就实现了多线程,下面运行下shell看下效果,这里你将看到10个test.php进程 再跑,再利用linux的定时器,定时请求这个shell,在处理一些需要多线程的任务,例如,批量下载时,非常好用!

posted @ 2012-10-24 10:28  hphong  阅读(298)  评论(0编辑  收藏  举报