【问题标题】:Thread Safety enabled server php启用线程安全的服务器 php
【发布时间】:2014-06-14 08:36:05
【问题描述】:

我正在尝试在 php 中实现线程,并在 windows 上使用 xampp 我可以做到这一点, 但是我有一个带有 cpanel 的 linux 服务器,并且在配置中禁用了线程安全,我怎样才能在我的服务器 linux 上启用? 我调用 phpinfo() 并显示“线程安全”已禁用

【问题讨论】:

    标签: php linux multithreading


    【解决方案1】:

    你有两个选择:

    • 在您的分发包存储库中查找线程安全包
    • 使用--enable-maintainer-zts从源代码编译PHP

    我很确定 cPanel 有一个配置屏幕,可以让您重新配置和重建,一个快速的谷歌出现了这个,这看起来很相关:

    http://forums.cpanel.net/f442/how-install-php-pthreads-zts-387252.html

    【讨论】:

      【解决方案2】:

      “线程安全”与您编写的任何 PHP 脚本无关,包括您是否想使用线程。它指的是运行PHP的服务器的样式:

      • apache 将 PHP 作为 CGI 运行,PHP 进程在其自己的进程中与 Apache worker 分开启动。 不需要线程安全二进制文件。

      • 带有 mod-php 的 apache,PHP 作为线程运行 apache 工作进程中。需要线程安全的二进制文件

      请参阅this answer 了解更详细的说明。

      【讨论】:

      • 您说与您编写的任何 PHP 脚本无关,包括您是否想使用线程。这是否意味着我可以扩展 Thread 类,而不管主机 PHP 中的线程安全是否处于活动状态?
      【解决方案3】:

      您无需启用Thread Safety,因为它不会对您的代码产生任何影响。为了更好地理解

      线程安全

      用于保证当不同线程操作的共享数据结构不进入竞态条件时。当 Web 服务器同时为不同的请求运行多个执行线程时,建议使用线程安全。线程安全的工作原理是在每个线程中创建一个本地存储副本,这样数据就不会与另一个线程发生冲突。

      非线程安全

      它不检查线程的安全性,这使它运行得更快,但同时它变得更加不稳定并且经常崩溃。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        • 2012-05-12
        • 1970-01-01
        相关资源
        最近更新 更多