2011-10-05 160 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环境中,仍然可以用于多核。