在非线程环境中使用线程安全扩展 (APC) 是否有任何危害?(菲律宾比索)


Is there any harm in using a thread-safe extension (APC) in a non-thread environment? (PHP)

>我打算使用这个带有进度条的简单PHP上传,它说我需要APC扩展。 我对 APC 有两个选择,线程安全和非线程安全。

使用 phpinfo,我发现线程安全已启用,但我不确定 php 是否真的在多线程运行。 我听说 php 仍然是多线程的测试版。

无论如何,如果我的PHP不是多线程的,也不是"线程安全的",那么使用APC的线程安全版本会有问题吗?

tl;dr 版本:线程安全的 APC 是否意味着更多的兼容性(适用于 php 单线程/多线程),还是意味着需要多线程(仅适用于 php 多线程)?

如果我的PHP不是多线程的,也不是"线程安全的",那么使用APC的线程安全版本会有问题吗?

是的 - 它不起作用,期间。线程安全是一个编译设置,必须与 PHP 本身和所有扩展匹配,否则无法加载它们。这是一篇非常详细地解释差异的文章。

请注意,除了 TS/NTS 设置之外,您还需要 CPU 体系结构(x86 与 x64)和用于编译的 Visual Studio 版本(VC6 与 VC9)进行匹配,以便扩展工作,并且扩展的版本可能仅适用于某个主要版本的 PHP。

所有这些都意味着很难获得正确的预编译的扩展二进制文件来与您的 PHP 安装一起使用。

我建议使用线程安全版本。虽然非线程安全版本可能更快,但如果PHP支持线程(或其扩展),那么拥有额外的兼容性是一个好主意。