5

このSimple PHP Upload を Progress Bar とともに使用するつもりでしたが、APC 拡張機能が必要であると表示されています。APC には、スレッドセーフと非スレッドセーフの 2 つのオプションがあります。

phpinfo を使用すると、スレッドセーフが有効になっていることがわかりますが、php が実際にマルチスレッドで実行されているかどうかはわかりません。php はまだマルチスレッドのベータ版だと聞いています。

とにかく、PHP がマルチスレッド化されておらず、「スレッドセーフ」でない場合、APC のスレッドセーフ バージョンを使用すると問題が発生するでしょうか?

tl;dr バージョン: スレッドセーフな APC はより多くの互換性を意味しますか (php シングル/マルチスレッドの両方で動作します)、それともマルチスレッドが必要であることを意味しますか (php マルチスレッドでのみ動作します)?

4

2 に答える 2

5

PHP がマルチスレッド化されておらず、「スレッドセーフ」ではない場合、APC のスレッドセーフ バージョンを使用すると問題が発生しますか?

はい、うまくいきません。スレッド セーフは、PHP 自体とすべての拡張機能に一致する必要があるコンパイル設定です。一致しないと、それらを読み込むことができません。その違いを詳しく解説している記事があります。

TS/NTS 設定に加えて、拡張機能が機能するためには、CPU アーキテクチャ (x86 と x64) とコンパイルに使用される Visual Studio のバージョン (VC6 と VC9) を一致させる必要があることに注意ください。拡張機能は、PHP の特定のメジャー バージョンでのみ機能する場合があります。

これはすべて、拡張機能の適切なプリコンパイル済みバイナリを PHP インストールで動作させるのが非常に難しいことを意味します。

于 2012-06-20T19:42:05.287 に答える
-1

スレッドセーフバージョンを使用することをお勧めします。非スレッドセーフバージョンの方が高速かもしれませんが、PHPがスレッドをサポートしている(またはその拡張機能がサポートしている)場合は、その追加の互換性を持たせることをお勧めします。

于 2012-06-20T18:09:15.223 に答える