2011-05-06 89 views
3

我有用PHP编写的自定义生成系统。它类似于使工具,收集具有依赖关系的源文件来编译和链接它们。从PHP命令行脚本生成多个进程

它采用系统函数运行G ++,就像这样:

system("g++ -c $file -o $out"); 

它的工作很大。不过,我有一个多核处理器,我想使用这些额外的内核来加速这个过程(如make -j 8)。我怎样才能在PHP中做到这一点?我不需要在PHP中拥有多线程本身,我只需要产生几个子进程并等待它们完成。

回答

0

由于通常内置于PHP CLI版本,因此您可以使用pcntl_fork()。它将当前的PHP进程复制到一个子进程中,然后该子进程可以与父进程分开进行。

请参阅手册页上的示例。

(您也可以利用封装该功能的PEAR System_Daemon;虽然它对您的情况有点太多了。)