php与shell实现多线程的简单例子

发布时间:2019-09-16编辑:脚本学堂
本文介绍下,在php中结合shell实现多线程的例子,有需要的朋友作个参考。

php本身不支持多线程,但apachelinux是支持的,有了lamp与lnmp这样的绝佳组合,再有了shell的鼎力相助,在php中实现多线程就不再那么困难了。

有如下的php代码,每次循环sleep 5秒。
文件 sleeep.php 代码:
 

复制代码 代码示例:
<?php
//for循环
for ($i = 0; $i < 10; $i++)
{
   echo $i;
   sleep(5);
}

接下来,就要shell上场了,调用php文件:sleep.php,代码如下:
 

复制代码 代码示例:
#!/bin/bash
#edit by www.jb200.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结合实现多线程的例子,就介绍到这里了,希望对大家有所帮助。