2011-07-29 162 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