教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php与shell实现多线程的简单例子

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

发布时间:2016-09-24   编辑:jiaochengji.com
本文介绍下,在php中结合shell实现多线程的例子,有需要的朋友作个参考。

php本身不支持多线程,但apache和linux是支持的,有了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.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实现多线程的两个方法 PHP shell
php多线程并发是怎么实现的
inux shell初级入门教程
php文件上传代码大全(实例分享)
python shell是什么
shell 求字符串长度的方法
php ftp下载文件的代码一例
linux 子shell 进程ID($$)
php多线程之管道通信的例子

[关闭]
~ ~