命令行开启多个PHP进程,如何解决等待问题? 应该不可以,php会等待exec的结束在linux下可尝试exec("php a.php &");估计也是不行的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多进程或是多线程用的函数肯定是非阻塞函数,即立马返回结果,而不管创建这个函数以后的动作。exec函数跟本没有达到这一点,所以这是不可能的。PHP本身能不能进行多进程或是多线程,俺不知道。不过俺到是看到过有人利用WEB服务器来模拟多线程。可以给楼主提供思路。代码如下:作者:帅的像人渣 来源:国际喜悦村<?php function runThread() { $fp = fsockopen('localhost', 80, $errno, $errmsg); fputs($fp, "GET /a.php?act=b\r\n\r\n"); //这里的第二个参数是HTTP协议中规定的请求头 //不明白的请看RFC中的定义 fclose($fp); } function a() { $fp = fopen('result_a.log', 'w'); fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "\r\n"); fclose($fp); } function b() { $fp = fopen('result_b.log', 'w'); fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "\r\n"); fclose($fp); } if(!isset($_GET['act'])) $_GET['act'] = 'a'; if($_GET['act'] == 'a') { runThread(); a(); } else if($_GET['act'] == 'b') b();?> 通过利用socket来模拟多线程是可以的目前需要做的是在命令行中运行PHP来实现多进程。唯一头疼的就是竟然非的等执行完毕才继续,不知道PHP有没有非阻塞执行函数。-_-! Process Control FunctionsPOSIX functions楼主参考这两个函数吧,别的就等高人来吧! 在文章页面中有运行代码,代码查看这种的怎么做。 本人新手,求助各位大大帮助一个小问题!在线等! 怎样才能实现像dedecms那样的数据库备份呢? PHP配置起来太麻烦了. 有php+oracle数据库操作封装类的进来? 通过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点。 高手来解决,问题有难度哦, -_-_长期求写文章,底线100无上限-_-_-疯狂程序员_-_-_-_-_-_ PHP函数问题?比较简单问题。 有没有可以编辑PPT的类,用户上传一个ppt模板,然后把里边的数据全部换成数据库中的,也有可能会新建一页幻灯片 请问怎样删除二维数组中的一列? 这种查询怎么实现?
模拟多线程。可以给楼主提供思路。代码如下:作者:帅的像人渣 来源:国际喜悦村<?php
function runThread()
{
$fp = fsockopen('localhost', 80, $errno, $errmsg);
fputs($fp, "GET /a.php?act=b\r\n\r\n"); //这里的第二个参数是HTTP协议中规定的请求头
//不明白的请看RFC中的定义
fclose($fp);
} function a()
{
$fp = fopen('result_a.log', 'w');
fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "\r\n");
fclose($fp);
} function b()
{
$fp = fopen('result_b.log', 'w');
fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "\r\n");
fclose($fp);
} if(!isset($_GET['act'])) $_GET['act'] = 'a';
if($_GET['act'] == 'a')
{
runThread();
a();
}
else if($_GET['act'] == 'b') b();
?>
目前需要做的是在命令行中运行PHP来实现多进程。唯一头疼的就是竟然非的等执行完毕才继续,不知道PHP有没有非阻塞执行函数。-_-!
POSIX functions楼主参考这两个函数吧,别的就等高人来吧!