2011-07-29 40 views
4

我建立一个大型的PHP框架。现在我们试图利用每个脚本中的所有可能的核心。mutithreading在PHP /阿帕奇

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

是否有可用于创建Web应用程序像这样的任何其他脚本...我试图寻找上线,但只有我已经找到解决方案是在桌面应用

+0

如果你有可能已经利用核许多客户。你可以*可能*收益是一个更快的反应......它值得吗?什么'mpstat'显示? –

回答

1

没有这样多的方法。你可能会做的是创建一个主要的PHP文件,然后有一个文件做一些事情,然后做出多个Ajax调用来打开多个线程。我就是做这个的。容易,而不是太复杂设置

+0

谢谢你 – Anush

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); 
?> 
+0

这将是伟大的孩子的过程,但我想运行两种功能同时... – Anush

+0

好分叉使得该过程的克隆,这样你就可以用它做任何你需要的。无论pcntl_fork()是你想要的,PCNTL都是必需的。这个例子只是一个例子:) – AlienWebguy

+0

但是不会让一个克隆变得昂贵,而且你会如何确定哪个函数是哪个。 – Anush