php における nts と ts の違い: ts はスレッド セーフを意味し、マルチスレッド アクセスにはロック メカニズムが使用されます。1 つのスレッドがこのクラスの特定のデータにアクセスするとき、他のスレッドは同時にそのデータにアクセスできません。 nts は非スレッド セーフを意味し、スレッド アクセス保護は提供されませんが、複数のスレッドが同じデータを同時に操作できます。
この記事の動作環境: Windows 10 システム、PHP バージョン 7.1、Dell G3 コンピューター。
PHP 開発環境および運用環境をセットアップするプロセスでは、PHP 言語パーサーをインストールする必要があります。公式ではスレッドセーフ(TS)版と非スレッドセーフ(NTS)版の2種類が提供されていますが、開発環境と実際の本番環境が異なる場合もあるので、対応するものをインストールするかどうかも選択する必要があります。 PHPのバージョン。
今後の参考のためにここにメモを記録してください...
1. はじめに
TS:
TS (Thread-Safety) とは、スレッド セーフの意味です。複数のスレッドからアクセスされる場合、ロック機構が採用されています。スレッドがこのクラスの特定のデータにアクセスすると、そのデータはロックされて保護され、他のスレッドはアクセスできなくなります。データにアクセスした後は、スレッドが読み取りを完了するまで、他のスレッドはそのデータにアクセスして使用することができません。データの不整合やデータ汚染が発生しないという利点がありますが、NTS よりも時間がかかります。
PHP が ISAPI モード (Apache で一般的に使用される) でロードされる場合は、TS バージョンを選択します。
NTS:
NTS (None-Thread Safe) はスレッドセーフではなく、データ アクセス保護を提供しません。複数のスレッドが同じように動作する可能性があります。この場合、データの混乱(ダーティデータ)が発生しやすく、一般的な演算の実行時間はTSに比べて短くなります。
PHP がロードされ、FAST-CGI モードで実行される場合は、パフォーマンスを向上させるために TNS バージョンを選択してください;
ISAPI:
ISAPI (インターネット サーバー)アプリケーション プログラミング インターフェイス) は、通常、http サーバーによってロードされ、サーバー モジュールの形式で実行されることを指します。これは Microsoft によって提案されたため、Win プラットフォーム (Win [fast CGI] 下の Apache や iis など) でのみ実行できます。モードはより安定しています] 一方、Linux 上の php は Apache モジュール (一般的な方法) または php-fpm (この方法は NGINX PHP 操作により適しています) として実行されます。
CGI:
cgi (Common Gateway Interface): HTTP サーバーがクライアント マシン上のプログラムと「対話」するためのツール。サーバーと通信できるバックエンド言語。現時点では、PHP は独立したプログラムとして実行されており、メモリを消費するという特徴があります。
FAST CGI:
fast CGI は長期間有効な CGI です。常に実行できます。アクティブ化されている限り、毎回実行されるわけではありません。新しいプロセスをフォークするには時間がかかります。このメソッドは、言語に依存せず、スケーラブルなアーキテクチャの CGI オープン拡張機能であり、その主な動作は、CGI インタプリタ プロセスをメモリ内に保持し、より高いパフォーマンスを実現することです。
FAST-CGI は、CGI インタプリタの欠点を解決するために Microsoft が提案した改善案です。 Web サーバーにリクエストが送信されると、Web サーバーは常に CGI インタプリタ プロセスをフォークしてリクエストを処理します。処理が完了すると、結果が Web サーバーに返されます。Web サーバーは結果を返し、表示します。ユーザーが同じページを再度リクエストすると、Web サーバーはリクエストを処理するために新しいプロセスをフォークするため、非効率になります (CGI が批判される主な理由)。 FAST-CGI インタプリタを使用すると、リクエスト実行後にプロセスはログアウトされませんが、改善されたプロセスは休止期間に入り、新しいリクエストを受信すると、改善されたプロセスは再び処理可能になります。 FAST-CGI は、CGI と比較してプロセスの繰り返し作成によるリソースの使用量を削減します。
プロセスとスレッド: プロセスには少なくとも 1 つ以上のスレッドがあります。
2.
通常は、Win 環境で PHP Apache の組み合わせを選択し、ISAPI モードで実行します。
Linux には通常 2 つのタイプがあります:
Apache PHP (PHP は通常 Apache のモジュールとして実行されます);
Nginx PHP (phpfast cgi の形式)つまり、php -fpm モードは高同時実行性と高負荷に対して優れたパフォーマンスを発揮するため、多くの Web サイトがこの方法を使用して環境を構築しています。
Nginx は Apache よりも構成がはるかに少ないため、人的エラーの可能性は低くなりますが、Apache は Nginx よりも安定しています。
これまで非常にナンセンスなことを述べてきましたが、重要な点は次のとおりです...
概要:
ISAPI モードで実行する場合は TS スレッドセーフ バージョンを使用してください
FAST を使用する - CGI または PHP-FPM モードで実行している場合は、NTS 非スレッドセーフ バージョンを使用してください
通常、Windows では Apache PHP の場合は TS を選択し、IIS では PHP の場合は TNS を選択します ( fast-cgi)
通常、Linux 上の Apache PHP には TS を選択し、Nginx PHP には TNS を選択します
推奨学習: "PHP ビデオ チュートリアル "
以上がPHPのntsとtsの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。