2011-10-05 152 views
3

我想在coreI7計算機系統上運行php。 有什麼辦法可以在64位模式下運行php,並且使用核心+超線程的所有功能。如何在多核PC上運行php

+1

可能重複[如何在PHP/MySQL應用程序中充分利用多核CPU?](http://stackoverflow.com/questions/2267345/how-do-you-make-good-use-of -multicore-cpus-in-your-php-mysql-applications) –

回答

3

PHP不支持創建線程。

+0

http://php.net/pcntl-fork怎麼樣? – KingCrunch

+0

這創建一個進程,而不是一個線程。 – ThiefMaster

+1

但是這個問題從來就不是線程的問題。有了多個進程,您也可以「使用所有內核」(如果不是更好,因爲沒有共享內存開銷)。 – KingCrunch

1

像往常一樣:取決於應用程序,但通常沒有。沒有那麼多的應用程序(使用任何語言),它們都使用多於一個的核心,而不是你所期望的。

但是,PHP被設計爲「run and die」,意思是:通常它只運行一次然後終止。這意味着,額外的流程通常不是必需的,可能會減慢整個執行過程(流程創建和內容)。有一些功能,可以讓你創建多進程應用程序,但我不認爲,你有一個應用程序的想法,這是有用的。

3

你可以用pcntl_fork來分解新進程,但在web上下文中運行通常不可行或不實際,因爲在大多數Apache + PHP配置中,最終會分叉Apache,從而導致失敗或給出未定義的行爲。另一方面,每個Apache進程都會自動爲其中一個內核進行調度,而且它們最終會在不同的內核上運行。所以即使在Web環境中,仍然可以用於多核。