ホームページ  >  記事  >  バックエンド開発  >  PHP のスレッドセーフ バージョンと非スレッドセーフ バージョンの違いは何ですか?

PHP のスレッドセーフ バージョンと非スレッドセーフ バージョンの違いは何ですか?

WBOY
WBOYオリジナル
2016-08-08 09:33:20930ブラウズ

PHP のスレッドセーフ バージョンと非スレッドセーフ バージョンの違いは何ですか?

バージョン 5.2.1 以降、Windows バージョンの PHP はスレッド セーフ (スレッド セーフ) とノン スレッド セーフ (NTS、非スレッド セーフ) に分かれています。この 2 つの違いは何ですか?どちらを使用するべきですか?ここで簡単に紹介します。

2000 年 10 月 20 日にリリースされた最初の Windows バージョンの PHP 3.0.17 以降、すべてのバージョンがスレッドセーフになっています。これは、マルチプロセス作業方式を使用する Linux/Unix システムとは異なり、Windows システムはマルチプロセス方式を使用するためです。プロセスの動作方法。スレッドの動作方法。 IIS で CGI モードで PHP を実行すると、CGI モードがマルチスレッドではなくマルチプロセスに基づいているため、非常に遅くなります。通常、PHP は ISAPI モードで実行されるように構成します。ISAPI はマルチスレッド モードなので、より高速です。しかし、問題があります。一般的に使用されている PHP 拡張機能の多くは、Linux/Unix のマルチプロセスの考え方に基づいて開発されています。これらの拡張機能を ISAPI モードで実行すると、問題が発生し、IIS がダウンします。したがって、CGI モードは IIS で PHP を実行する最も安全な方法ですが、CGI モードでは HTTP リクエストごとに PHP 環境全体をリロードおよびアンロードする必要があり、その消費量は膨大です。

IIS での PHP の効率とセキュリティを考慮するために、Microsoft は FastCGI ソリューションを提供しています。 FastCGI を使用すると、新しいリクエストごとにプロセスを再度開くのではなく、PHP プロセスを再利用できます。同時に、FastCGI では複数のプロセスを同時に実行することもできます。これにより、CGI プロセス モードの過剰な消費の問題が解決されるだけでなく、CGI プロセス モードにはスレッド セーフの問題がないという事実も利用されます。

したがって、ISAPI を使用して PHP を実行する場合は、スレッド セーフ (スレッド セーフ) バージョンを使用する必要があります。また、FastCGI モードを使用して PHP を実行する場合は、スレッド セーフ チェックを使用する必要はなく、None Thread Safe (NTS、非) を使用します。 -スレッドセーフ) バージョンでは効率が向上します。

上記では、PHP のスレッド セーフ バージョンと非スレッド セーフ バージョンの違いを、関連する側面も含めて紹介しています。PHP チュートリアルに興味のある友人にとって役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。