2012-06-20 1 views
5

私はこのSimple PHP Upload with a Progress Barを使用するつもりで、APC拡張が必要だと言います。 APCにはスレッドセーフとスレッドセーフでない2つのオプションがあります。非スレッド環境でスレッドセーフ拡張(APC)を使用することには何らかの害がありますか? (PHP)

phpinfoを使用すると、スレッドセーフが有効になっていますが、実際にはPHPがmutithreadedを実行しているかどうかはわかりません。私は、PHPはまだmutithreadのためのちょっとベータだと聞いています。

私のPHPがmutithreadされず、「スレッドセーフ」でない場合は、スレッドセーフバージョンのAPCを使用する際に問題がありますか?

tl; dr version:スレッドセーフなAPCの方が互換性が高いですか(PHPシングル/マルチスレッドともに動作します)、またはマルチスレッドが必要です(PHPのmutithreadでのみ動作します)。

+2

PHPがスレッドセーフでコンパイルされている場合は、その拡張も同じである必要があります。 PHPがスレッドセーフではない場合、拡張も同じでなければなりません。拡張子は一致しない限りロードされません。この場合、[このようなエラーが出ます(http://stackoverflow.com/q/3271798/185544)(TS/NTSの不一致に注意してください)。したがって、スレッドセーフなAPCが必要です。 – Wiseguy

答えて

6

私のPHPがmutithreadedではなく、「スレッドセーフ」でない場合は、スレッドセーフバージョンのAPCを使用する際に問題がありますか?

はい - 期間は動作しません。スレッドの安全性は、PHP自体とすべての拡張機能とで一致しなければならないコンパイル設定です。そうしないと、ロードできません。 Here's an articleの違いを詳しく説明しています。 TS/NTS設定以外

なお、あなたが CPUアーキテクチャ(x64の対のx86)が必要とVisual Studioのバージョンは、仕事への拡張のための順序で一致する(VC9対VC6)をコンパイルするために使用しました、および拡張機能のバージョンは、特定のメジャーバージョンのPHPでしか動作しない可能性があります。

これは、PHPインストールで動作する拡張機能のプリコンパイルされたバイナリを取得するのがかなり難しいことを意味しています。

-2

スレッドセーフ版を使用することをお勧めします。スレッドセーフでないバージョンは高速かもしれませんが、PHPがスレッド(またはその拡張機能)をサポートしていれば、その余分な互換性を持つことは良い考えです。

+0

マイケル・ボルグワードの解答を参照してください。スレッドセーフでスレッドセーフでないバージョンのPHP(拡張機能を含む)は相互に互換性がありません。 – duskwuff

+0

うん、それだ。私は私の答えを更新するのに気にしていない。 –

関連する問題