【问题标题】:to use thread safe or non thread safe php?使用线程安全或非线程安全的php?
【发布时间】:2011-03-30 20:38:03
【问题描述】:

我想知道我的 php 使用哪个安装?我将使用 apache。我读到 apache 的线程安全更快,而 IIS 的非线程安全?是真的(很高兴知道我以后是否打算使用 iis)?

【问题讨论】:

标签: php apache


【解决方案1】:

如果你使用 mod_php 和 MPM 创建线程来处理请求(而不是进程),你应该使用线程安全,否则当多个 PHP 脚本同时运行时你可能会得到一堆不希望的副作用同一进程空间中的不同线程。默认情况下,Apache2 在 Windows 上使用 mpm_winnt MPM,它创建线程来处理传入请求。因此,如果您使用它,请使用线程安全二进制文件。但请注意,即使 PHP 本身是线程安全的,您使用的库/扩展也可能不是。因此,即使使用线程安全的 PHP 二进制文件,您可能仍然会遇到 mod_php 和线程 MPM 的问题。有关更多信息,请查看此常见问题解答条目:http://fi.php.net/manual/en/faq.installation.php#faq.installation.apache2

但是,如果您没有使用 mod_php(例如,您使用的是 FCGI),或者您使用的是 mod_php,但使用的是生成进程而不是线程来处理请求的 MPM(例如,prefork MPM),那么你应该使用非线程安全的二进制文件,因为它比线程安全版本更有效,而且当你以这种方式设置网络服务器时,由于 PHP 脚本在它们自己的进程空间中运行,因此没有理由产生额外的开销线程安全的二进制文件。

【讨论】:

    猜你喜欢
    • 2010-12-10
    • 1970-01-01
    • 2011-11-04
    • 2011-08-13
    • 1970-01-01
    • 2012-11-18
    相关资源
    最近更新 更多