Maison  >  Article  >  développement back-end  >  Qu’est-ce que le PHP asynchrone ?

Qu’est-ce que le PHP asynchrone ?

Guanhui
Guanhuiavant
2020-06-18 17:58:293525parcourir

Qu’est-ce que le PHP asynchrone ?

La différence entre la programmation synchrone et asynchrone

Avant de discuter des avantages du PHP asynchrone, passons rapidement en revue le modèle de programmation synchrone et modèles de programmation asynchrone. Le code synchrone est exécuté séquentiellement, ligne par ligne. Vous devez

terminer la mission précédente avant de pouvoir commencer une autre mission. Dans le code asynchrone, plusieurs tâches peuvent être effectuées simultanément, ce qui peut considérablement améliorer les performances des applications et l'expérience utilisateur.

Recommandations de cours connexes : "Débutant à maîtrise en programmation PHP"

Qu'est-ce que le PHP synchrone ?

Le PHP synchrone fait référence au code PHP écrit à l'aide du modèle synchrone. PHP a été créé à l'origine pour prendre en charge le développement synchrone, la plupart des développeurs PHP sont donc habitués à écrire du code synchrone dans ce langage. Prefork en utilisant mod_php d'Apache ou php-fpm en utilisant Apache ou Nginx.

Vous recherchez un tutoriel de base sur PHP ? Consultez ce blog, Bases du développement PHP : Qu'est-ce que PHP, pourquoi est-il si populaire et quels sont les avantages de PHP ? .

Qu'est-ce que le PHP asynchrone ?

Le PHP asynchrone fait référence au code PHP écrit à l'aide du modèle asynchrone. En utilisant une extension comme Swoole ou un framework PHP comme ReactPHP, vous pouvez faire en sorte que PHP accepte les requêtes et les réponses de manière asynchrone à l'aide d'une boucle d'événements.

Quelle est la principale différence entre la programmation PHP synchrone et asynchrone ?

Dans de nombreuses applications, le processeur passe beaucoup de temps inactif pendant les tâches d'E/S. L'idée du PHP asynchrone est d'utiliser pleinement tous les cycles CPU disponibles pour effectuer d'autres tâches en exécutant des tâches d'E/S non bloquantes en arrière-plan, en traitant d'autres tâches pendant que le CPU attend les données et les instructions requises pour se terminer. les E/S. PHP synchrone, le CPU ne gérera que les tâches d'E/S. Une fois la tâche en cours terminée, continuez le traitement de la tâche suivante dans la file d'attente.

Utilisez PHP asynchrone pour obtenir des performances ultra-rapides par rapport aux applications écrites en PHP synchrone. Dans certains benchmarks, l'utilisation de Swoole pour activer PHP asynchrone peut augmenter le débit de 100 fois par rapport à l'utilisation d'un accélérateur de processus tel que php-fpm dans du code synchrone. C'est pourquoi php-fpm ne prend pas en charge la communication asynchrone en temps réel utilisant des protocoles comme Websockets.

Quel PHP devriez-vous utiliser ?

Comme pour la plupart des problèmes concernant l'exécution, les serveurs Web et la programmation générale, différents cas d'utilisation dicteront s'il faut utiliser PHP synchrone ou asynchrone. Pour utiliser PHP asynchrone, votre code doit le prendre en charge. La plupart des extensions que les développeurs PHP ont l'habitude d'utiliser bloquent les appels de processus (également appelés blocage d'E/S), ce qui rend le modèle asynchrone irréalisable.

Par exemple, pour utiliser Swoole, lorsqu'il rencontre un appel de demande d'E/S, il doit envoyer l'appel en arrière-plan, puis continuer à exécuter l'instruction suivante. Lorsque l'appel d'E/S renvoie des données, Swoole doit redonner le contrôle à l'appel d'E/S qui a été envoyé en arrière-plan afin qu'il puisse contrôler les données demandées au processus. La réécriture de votre code pour prendre en charge les processus asynchrones peut nécessiter une refactorisation pour fonctionner. Cependant, le temps que vous gagnerez en vaudra peut-être la peine à l’avenir.

Démarrer un projet PHP asynchrone

Puisque vous écrivez du code d'une manière qui prend en charge les processus asynchrones, vous devez profiter d'un projet qui peut le faire. Voici nos trois principales recommandations :

  • Swoole – Framework de programmation asynchrone PHP collaboratif.

  • Reactphp – E/S non bloquantes et pilotées par événements pour PHP.

  • Amphp – Framework de concurrence non bloquant PHP.

Tutoriel recommandé : "Cet article provient de la colonne Tutoriel php du site Web php chinois, bienvenue pour apprendre !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer