【发布时间】:2014-06-14 08:36:05
【问题描述】:
我正在尝试在 php 中实现线程,并在 windows 上使用 xampp 我可以做到这一点, 但是我有一个带有 cpanel 的 linux 服务器,并且在配置中禁用了线程安全,我怎样才能在我的服务器 linux 上启用? 我调用 phpinfo() 并显示“线程安全”已禁用
【问题讨论】:
标签: php linux multithreading
我正在尝试在 php 中实现线程,并在 windows 上使用 xampp 我可以做到这一点, 但是我有一个带有 cpanel 的 linux 服务器,并且在配置中禁用了线程安全,我怎样才能在我的服务器 linux 上启用? 我调用 phpinfo() 并显示“线程安全”已禁用
【问题讨论】:
标签: php linux multithreading
你有两个选择:
--enable-maintainer-zts从源代码编译PHP
我很确定 cPanel 有一个配置屏幕,可以让您重新配置和重建,一个快速的谷歌出现了这个,这看起来很相关:
http://forums.cpanel.net/f442/how-install-php-pthreads-zts-387252.html
【讨论】:
“线程安全”与您编写的任何 PHP 脚本无关,包括您是否想使用线程。它指的是运行PHP的服务器的样式:
apache 将 PHP 作为 CGI 运行,PHP 进程在其自己的进程中与 Apache worker 分开启动。 不需要线程安全二进制文件。
带有 mod-php 的 apache,PHP 作为线程运行 在 apache 工作进程中。需要线程安全的二进制文件。
请参阅this answer 了解更详细的说明。
【讨论】:
Thread 类,而不管主机 PHP 中的线程安全是否处于活动状态?
您无需启用Thread Safety,因为它不会对您的代码产生任何影响。为了更好地理解
线程安全:
用于保证当不同线程操作的共享数据结构不进入竞态条件时。当 Web 服务器同时为不同的请求运行多个执行线程时,建议使用线程安全。线程安全的工作原理是在每个线程中创建一个本地存储副本,这样数据就不会与另一个线程发生冲突。
非线程安全:
它不检查线程的安全性,这使它运行得更快,但同时它变得更加不稳定并且经常崩溃。
【讨论】: