Maison  >  Article  >  développement back-end  >  Quelle est la différence entre nts et ts en php

Quelle est la différence entre nts et ts en php

WBOY
WBOYoriginal
2022-02-21 15:21:153963parcourir

La différence entre nts et ts en php : ts signifie sécurité des threads, et un mécanisme de verrouillage est utilisé pour l'accès multi-thread lorsqu'un thread accède à certaines données de cette classe, d'autres threads ne peuvent pas y accéder en même temps ; signifie sécurité sans thread, ne fournit pas de protection d'accès aux threads, plusieurs threads peuvent exploiter les mêmes données en même temps.

Quelle est la différence entre nts et ts en php

L'environnement d'exploitation de cet article : système Windows 10, PHP version 7.1, ordinateur Dell G3.

Quelle est la différence entre nts et ts en php ?

Pendant le processus de configuration des environnements de développement et de production PHP, vous devez installer un analyseur de langage PHP. Le responsable propose deux types de versions, la version thread-safe (TS) et la version non thread-safe (NTS). Parfois, notre environnement de développement et l'environnement de production réel sont différents, nous devons donc également choisir d'installer la version correspondante. Version PHP.

Enregistrez les notes ici pour référence future...

1. Introduction

TS :

TS (Thread-Safety) signifie sécurité des threads Lorsqu'il est accessible par plusieurs threads, un mécanisme de verrouillage est utilisé. Lorsqu'un thread accède à certaines données de cette classe, les données sont verrouillées et protégées. Les autres threads ne peuvent pas accéder aux données en même temps. Ce n'est que lorsque le thread a terminé la lecture que les autres threads peuvent accéder et utiliser les données. Il n'y a pas d'incohérence des données ou d'incohérence des données, mais cela prend plus de temps que NTS.

Sélectionnez la version TS lorsque PHP est chargé en mode ISAPI (couramment utilisé par Apache).

NTS :

NTS (None-Thread Safe) n'est pas thread-safe et ne fournit pas de protection contre l'accès aux données. Il est possible que plusieurs threads exploitent les mêmes données l'un après l'autre ou en même temps, ce qui peut facilement se produire. provoquer une confusion des données (c'est-à-dire des données sales), le temps d'exécution des opérations générales est plus court que celui de TS.

Lorsque PHP est chargé et exécuté en mode FAST-CGI, choisissez la version TNS pour de meilleures performances ;

ISAPI :

ISAPI (Internet Server Application Programming Interface), fait généralement référence au chargement par le serveur http, comme le serveur Il fonctionne sous la forme d'un module, proposé par Microsoft, il ne peut donc fonctionner que sur la plateforme win, comme apache et iis sous win [le mode cgi rapide est plus stable], alors que php sous Linux utilise le module Apache ( méthode courante) ou php-fpm (cette méthode est plus adaptée au fonctionnement NGINX+PHP).

CGI :

cgi (Common Gateway Interface) : Un outil permettant au serveur HTTP de "parler" avec le programme sur la machine client. En bref, cig est un langage d'arrière-plan qui peut communiquer avec le serveur. À l'heure actuelle, PHP fonctionne comme un programme indépendant, caractérisé par une consommation de mémoire.

FAST CGI :

fast cgi est un CGI de longue durée. Il peut être exécuté à tout moment, tant qu'il est activé, il ne faudra pas de temps pour lancer un nouveau processus à chaque fois. Cette méthode est une extension ouverte CGI à architecture évolutive et indépendante du langage. Son comportement principal est de conserver le processus interpréteur CGI en mémoire et ainsi d'obtenir des performances plus élevées.

FAST-CGI est un plan d'amélioration proposé par Microsoft pour résoudre les lacunes de l'interpréteur CGI. Lorsqu'une requête est envoyée au serveur Web, le serveur Web lancera toujours un processus d'interprétation CGI pour traiter la demande. Une fois le processus terminé, le résultat sera renvoyé au serveur Web. Le serveur Web renverra le résultat et l'affichera. Le processus se termine. Lorsque l'utilisateur demande à nouveau la même page, le serveur Web lancera un nouveau processus pour traiter la demande, ce qui sera inefficace (la principale raison pour laquelle CGI est critiqué). Si l'interpréteur FAST-CGI est utilisé, le processus ne sera pas déconnecté après l'exécution d'une demande, mais le processus amélioré entrera en période de dormance. Lorsqu'une nouvelle demande est reçue, le processus amélioré sera réactivé pour le traitement. FAST-CGI réduit l'utilisation des ressources liées à la création de processus répétés par rapport à CGI.

Processus et threads : Un processus comporte au moins un ou plusieurs threads.

2. Sélectionnez

Gagnez généralement la combinaison PHP + Apache et exécutez en mode ISAPI.

Il en existe généralement deux types sous Linux :

Apache + PHP, PHP est généralement exécuté comme un module d'Apache ;

Nginx + PHP, fonctionne en mode phpfast cgi, c'est-à-dire en mode php-fpm, qui convient à Les utilisateurs haut de gamme ont de bonnes performances en termes de concurrence et de charge élevée, c'est pourquoi de nombreux sites Web utilisent cette méthode pour créer des environnements.

Nginx a beaucoup moins de configurations qu'Apache, donc la probabilité d'erreur humaine est moindre, mais Apache est plus stable que Nginx.

Il y a tellement de bêtises avant, voici le point clé...

Résumé :

Utilisez la version TS thread-safe lors de l'exécution en mode ISAPI

Utilisez la version NTS non-thread-safe lors de l'exécution en FAST -Mode CGI ou PHP-FPM

Habituellement, pour Apache + PHP sous Windows, choisissez TS, pour IIS (fast-cgi) + PHP, choisissez TNS

Habituellement, pour Apache + PHP sous Linux, choisissez TS, et pour Nginx + PHP, choisissez TNS

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn