php / apache中的多线程

时间:2011-07-29 23:13:49

标签: php multithreading

我正在构建一个大型的PHP框架。现在我们正在尝试利用每个脚本中的所有可能内核。

如何跨多个核心运行一个脚本。例如,假设我在一个php文件上有两个函数进行大量处理。如何在两个不同的处理器上同时运行这两个处理器,然后将结果返回到脚本并继续进行其余处理。

是否有任何其他脚本可用于创建这样的Web应用程序...我尝试在线查看但只有我发现的解决方案是在桌面应用程序中

3 个答案:

答案 0 :(得分:1)

您想查看PCNTL。请记住,它是为CGI-mod设计的,但可以用于apache。

使用示例:

<?php 
// Create the MySQL connection 
$db = mysql_connect($server, $username, $password); 

$pid = pcntl_fork(); 

if ( $pid == -1 ) {        
    // Fork failed            
    exit(1); 
} else if ( $pid ) { 
    // We are the parent 
    // Can no longer use $db because it will be closed by the child 
    // Instead, make a new MySQL connection for ourselves to work with 
    $db = mysql_connect($server, $username, $password, true); 
} else { 
    // We are the child 
    // Do something with the inherited connection here 
    // It will get closed upon exit 
    exit(0); 
?> 

答案 1 :(得分:1)

没有这样的多处理方法。你可能做的是创建一个主要的PHP文件,然后有一个文件,做一些事情然后进行多次ajax调用,以打开它的多个线程。我就是做这个的。设置简单且不太复杂

答案 2 :(得分:0)

你不能在php中使用线程。但是,这些较旧的帖子可能很有用:

所以我想你需要通过任何ipc选项进行分叉和同步,所以这篇也很老的帖子可能会有所帮助:How to IPC between PHP clients and a C Daemon Server?