php并行运算,PHP 的并行如何实现?

要实现一个广播功能,广播的表里有内容,开始时间,结束时间,间隔时间。

如图:

我用do while 做定时处理,代码如下:

do{$ti = strtotime(date('Y-m-d H:i:s'));//当前时间戳$array = $this->all_broadcast();//广播数组foreach($array as $key => $val){$intervals = 60;//(秒)间隔时间$content = urlencode($val['content']);//广播内容if($ti >= $val['starttime'] && $ti <= $val['endtime']){//判断当前时间是否大于等于开始时间并且小于等于结束时间$hello = $this->get_curl($content);//调用广播的方法开始广播sleep($intervals);//间隔时间调用一次}fclose($fp);}sleep(10);//10秒}while(true);

现在的问题是:如果广播是一条的话,可以根据间隔时间来按时广播。如果广播有好几条,那他就不能在同一时间调用get_curl方法N次。这要怎么解决呢?

怎样能让他们根据各自的开始时间、结束时间、间隔时间,互不干扰地进行播放呢?

这是不是需要PHP中的并行来实现呢?

回复讨论(解决方案)

这个问题貌似涉及到了多线程,如果在java中可以做到,弄多个线程让它跑就是了。

php不支持多线程。但是可以用一个苯点的办法实现你要的需求就是:定时任务;

linux下可以用crontab来实现。

试试 curl_multi 吧

这个问题貌似涉及到了多线程,如果在java中可以做到,弄多个线程让它跑就是了。

php不支持多线程。但是可以用一个苯点的办法实现你要的需求就是:定时任务;

linux下可以用crontab来实现。 不是linux的系统,win下怎么实现呢?能点建议吧!

1086 和 1087 的开始时间相同

你打算混合输出这两条内容?

这个问题貌似涉及到了多线程,如果在java中可以做到,弄多个线程让它跑就是了。

php不支持多线程。但是可以用一个苯点的办法实现你要的需求就是:定时任务;

linux下可以用crontab来实现。 不是linux的系统,win下怎么实现呢?能点建议吧!

windows装一个crontab工具

1086 和 1087 的开始时间相同

你打算混合输出这两条内容?

是的。他们互不干扰地输入各种预先设定好的!

不知道什么意思,

sleep(10);//10秒

这个不会在网页上显示内容 啊只有10 过后才会显示,一次性显示,

你的好像是死循环吧

我也是新人

并行未必需要用多线程~ 而且php的多线程库在cgi下鬼知道会发生什么情况,绝对要好好测试下,有兴趣的同学试试。

回到正题,楼主可能需要的是异步~

比如程序运行到某一刻发一条通知到某个处理单元(实现方式先不论),然后也不等待这个处理单元的处理结果就直接向下执行,这样就能省下时间~

关于这个,鸟哥讨论过几种实现方式~

http://www.laruence.com/2008/04/14/318.html

另,其中用curl的办法有点小变化,我在评论里加了一笔。翻了一下文档~ 发现curl 有了毫秒级的超时设置~CURLOPT_CONNECTTIMEOUT_MS 这个选项备注: Added in cURL 7.16.2. Available since PHP 5.2.3我现在用的cURL 7.24 和 php5.4 ~ 暗爽~

当然,时隔这么久,也许有其它更好的办法~ http://www.swoole.com/ 就是一例,私以为这个堪成大器,phper可以不用再跪着写代码了~

好吧,有点不太习惯CSDN自带的文字编辑~ 凑合看吧~

并行未必需要用多线程~ 而且php的多线程库在cgi下鬼知道会发生什么情况,绝对要好好测试下,有兴趣的同学试试。

回到正题,楼主可能需要的是异步~

比如程序运行到某一刻发一条通知到某个处理单元(实现方式先不论),然后也不等待这个处理单元的处理结果就直接向下执行,这样就能省下时间~

关于这个,鸟哥讨论过几种实现方式~

http://www.laruence.com/2008/04/14/318.html

另,其中用curl的办法有点小变化,我在评论里加了一笔。翻了一下文档~ 发现curl 有了毫秒级的超时设置~CURLOPT_CONNECTTIMEOUT_MS 这个选项备注: Added in cURL 7.16.2. Available since PHP 5.2.3我现在用的cURL 7.24 和 php5.4 ~ 暗爽~

当然,时隔这么久,也许有其它更好的办法~ http://www.swoole.com/ 就是一例,私以为这个堪成大器,phper可以不用再跪着写代码了~

哎!我也看过这个swoole,可看那代码,不像是PHP的啊?而且我复制到代码里都报错。不会用啊这是!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值