Heim >Backend-Entwicklung >PHP-Tutorial >Was ist der Unterschied zwischen threadsicheren und nicht threadsicheren PHP-Versionen?
Was ist der Unterschied zwischen threadsicheren und nicht threadsicheren PHP-Versionen?
Ab Version 5.2.1 ist die Windows-Version von PHP in Thread Safe (Thread-Sicherheit) und None Thread Safe (NTS, Nicht-Thread-Sicherheit) unterteilt. Was ist der Unterschied zwischen den beiden? Welches sollte verwendet werden? Hier ist eine kurze Einführung.
Ab der ersten Windows-Version von PHP 3.0.17, die am 20. Oktober 2000 veröffentlicht wurde, sind alle Versionen threadsicher. Dies liegt daran, dass das Windows-System im Gegensatz zum Linux/Unix-System, das eine Multiprozess-Arbeitsmethode verwendet, eine Multi-Prozess-Methode verwendet. Arbeitsweise des Prozesses. Wenn Sie PHP im CGI-Modus unter IIS ausführen, ist es sehr langsam. Dies liegt daran, dass der CGI-Modus auf Multiprozess und nicht auf Multithread basiert. Im Allgemeinen konfigurieren wir PHP für die Ausführung im ISAPI-Modus. ISAPI ist ein Multithread-Modus, der viel schneller ist. Es gibt jedoch ein Problem. Viele häufig verwendete PHP-Erweiterungen basieren auf dem Multiprozess-Denken von Linux/Unix. Wenn diese Erweiterungen im ISAPI-Modus ausgeführt werden, gehen sie schief und führen zum Absturz von IIS. Daher ist der CGI-Modus die sicherste Möglichkeit, PHP unter IIS auszuführen. Der CGI-Modus erfordert jedoch das Neuladen und Entladen der gesamten PHP-Umgebung für jede HTTP-Anfrage und verursacht einen enormen Verbrauch.
Um der Effizienz und Sicherheit von PHP unter IIS Rechnung zu tragen, hat Microsoft eine FastCGI-Lösung bereitgestellt. FastCGI ermöglicht die Wiederverwendung von PHP-Prozessen, anstatt einen Prozess für jede neue Anfrage erneut zu öffnen. Gleichzeitig kann FastCGI auch die gleichzeitige Ausführung mehrerer Prozesse ermöglichen. Dadurch wird nicht nur das Problem des übermäßigen Verbrauchs des CGI-Prozessmodus gelöst, sondern auch die Tatsache ausgenutzt, dass im CGI-Prozessmodus keine Thread-Sicherheitsprobleme auftreten.
Wenn Sie also ISAPI zum Ausführen von PHP verwenden, müssen Sie die Thread-Safe-Version (Thread-Safe) verwenden. Wenn Sie den FastCGI-Modus zum Ausführen von PHP verwenden, ist keine Thread-Sicherheitsprüfung erforderlich. Verwenden Sie None Thread Safe (NTS, nicht). -Thread-sichere) Version kann die Effizienz besser verbessern.
Das Obige stellt den Unterschied zwischen der Thread-sicheren und der nicht-Thread-sicheren Version von PHP vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.