应该不可以,php会等待exec的结束
在linux下可尝试
exec("php a.php &");
估计也是不行的

解决方案 »

  1.   

    多进程或是多线程用的函数肯定是非阻塞函数,即立马返回结果,而不管创建这个函数以后的动作。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();
    ?>
      

  2.   

    通过利用socket来模拟多线程是可以的
    目前需要做的是在命令行中运行PHP来实现多进程。唯一头疼的就是竟然非的等执行完毕才继续,不知道PHP有没有非阻塞执行函数。-_-!
      

  3.   

    Process Control Functions
    POSIX functions楼主参考这两个函数吧,别的就等高人来吧!