Heim > Artikel > Backend-Entwicklung > Was ist der Unterschied zwischen nts und ts in PHP?
Der Unterschied zwischen nts und ts in PHP: ts bedeutet Thread-Sicherheit und ein Sperrmechanismus wird für den Multithread-Zugriff verwendet, während andere Threads nicht gleichzeitig darauf zugreifen können bedeutet Nicht-Thread-Sicherheit, nicht Bietet Thread-Zugriffsschutz, mehrere Threads können gleichzeitig dieselben Daten bearbeiten.
Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP-Version 7.1, Dell G3-Computer.
Während der Einrichtung von PHP-Entwicklungs- und Produktionsumgebungen müssen Sie einen PHP-Sprachparser installieren. Der Beamte stellt zwei Arten von Versionen bereit: die Thread-sichere (TS)-Version und die nicht-Thread-sichere (NTS)-Version. Manchmal unterscheiden sich unsere Entwicklungsumgebung und die tatsächliche Produktionsumgebung, sodass wir uns auch für die Installation der entsprechenden Version entscheiden müssen PHP-Version.
Notizen hier zum späteren Nachschlagen...
1. Einführung
TS:
TS (Thread-Safety) bedeutet Thread-Sicherheit. Beim Zugriff durch mehrere Threads wird ein Sperrmechanismus verwendet. Wenn ein Thread auf bestimmte Daten dieser Klasse zugreift, sind die Daten gesperrt und geschützt. Andere Threads können nicht gleichzeitig auf die Daten zugreifen und sie verwenden Es liegt keine Dateninkonsistenz oder Datenverschmutzung vor, aber es dauert länger als bei NTS.
Wählen Sie die TS-Version aus, wenn PHP im ISAPI-Modus geladen wird (häufig von Apache verwendet).
NTS:
NTS (None-Thread Safe) ist nicht threadsicher und bietet keinen Datenzugriffsschutz. Es ist möglich, dass mehrere Threads nacheinander oder gleichzeitig dieselben Daten bearbeiten, was leicht passieren kann Da es zu Datenverwirrung (d. h. schmutzigen Daten) kommt, ist die Ausführungszeit allgemeiner Vorgänge kürzer als die von TS.
Wenn PHP geladen und im FAST-CGI-Modus ausgeführt wird, wählen Sie die TNS-Version für eine bessere Leistung;
ISAPI:
ISAPI (Internet Server Application Programming Interface), bezieht sich normalerweise auf das Laden durch den http-Server und Der Server wird in Form eines von Microsoft vorgeschlagenen Moduls ausgeführt, sodass er nur auf der Win-Plattform ausgeführt werden kann, z. B. Apache und IIS unter Win [der schnelle CGI-Modus ist stabiler], während PHP unter Linux das Apache-Modul verwendet ( gängige Methode) oder php-fpm (diese Methode eignet sich besser für den NGINX+PHP-Betrieb).
CGI:
cgi (Common Gateway Interface): Ein Tool für den HTTP-Server, um mit dem Programm auf dem Client-Computer zu „sprechen“. Kurz gesagt, cig ist eine Hintergrundsprache, die mit dem Server kommunizieren kann. Zu diesem Zeitpunkt läuft PHP als unabhängiges Programm, das durch Speicherverbrauch gekennzeichnet ist.
FAST CGI:
Fast CGI ist ein langlebiges CGI. Es kann jederzeit ausgeführt werden, solange es nicht jedes Mal einen neuen Prozess erfordert. Bei dieser Methode handelt es sich um eine sprachunabhängige, offene CGI-Erweiterung mit skalierbarer Architektur. Ihr Hauptverhalten besteht darin, den CGI-Interpreterprozess im Speicher zu halten und so eine höhere Leistung zu erzielen.
FAST-CGI ist ein von Microsoft vorgeschlagener Verbesserungsplan zur Behebung der Mängel des CGI-Interpreters. Wenn eine Anfrage an den Webserver gesendet wird, leitet der Webserver immer einen CGI-Interpreterprozess weiter, um die Anfrage zu verarbeiten. Nach Abschluss des Prozesses wird das Ergebnis an den Webserver zurückgegeben und angezeigt Wenn der Benutzer dieselbe Seite erneut anfordert, wird der Webserver einen neuen Prozess zur Verarbeitung der Anforderung durchführen, was ineffizient ist (der Hauptgrund, warum CGI kritisiert wird). Wenn der FAST-CGI-Interpreter verwendet wird, wird der Prozess nach der Ausführung einer Anfrage nicht abgemeldet, sondern der verbesserte Prozess geht in die Ruhephase über. Wenn eine neue Anfrage eingeht, wird der verbesserte Prozess wieder für die Verarbeitung aktiviert. FAST-CGI reduziert im Vergleich zu CGI den Ressourcenverbrauch bei der wiederholten Erstellung von Prozessen.
Prozesse und Threads: Ein Prozess hat mindestens einen oder mehrere Threads.
2. Wählen Sie
Normalerweise die PHP + Apache-Kombination und führen Sie sie im ISAPI-Modus aus.
Unter Linux gibt es normalerweise zwei Typen:
Apache + PHP, PHP wird im Allgemeinen als Modul von Apache ausgeführt;
Nginx + PHP, läuft im PHPFast-CGI-Modus, also im PHP-FPM-Modus, der für geeignet ist High-End-Benutzer haben eine gute Leistung, daher verwenden viele Websites diese Methode zum Erstellen von Umgebungen.
Nginx hat viel weniger Konfigurationen als Apache, daher ist die Wahrscheinlichkeit menschlicher Fehler geringer, aber Apache ist stabiler als Nginx. 🔜 -CGI- oder PHP-FPM-Modus
Normalerweise wählen Sie für Apache + PHP unter Windows TS, für IIS (Fast-CGI) + PHP TNS
Normalerweise wählen Sie für Apache + PHP unter Linux TS und für Nginx + PHP, wählen Sie TNS
Empfohlenes Lernen: „
PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen nts und ts in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!