Maison >cadre php >Swoole >Swoole est-il asynchrone ?

Swoole est-il asynchrone ?

(*-*)浩
(*-*)浩original
2019-12-09 10:17:371881parcourir

Swoole est-il asynchrone ?

swoole est le moteur de communication réseau asynchrone, parallèle et haute performance de PHP. Il est écrit en langage C pur et fournit un serveur multithread asynchrone en langage PHP et un serveur asynchrone. Réseau TCP/UDP, MySQL asynchrone, Redis asynchrone, pool de connexions à la base de données, AsyncTask, file d'attente de messages, minuterie en millisecondes, lecture et écriture de fichiers asynchrones, requête DNS asynchrone.

Swoole a un serveur/client Http/WebSocket intégré et un serveur Http2.0. (Apprentissage recommandé : tutoriel vidéo swoole )

Swoole peut être largement utilisé dans Internet, les communications mobiles, les logiciels d'entreprise, les jeux en ligne, l'Internet des objets, l'Internet des véhicules, les maisons intelligentes et autres champs. L'utilisation de PHP+Swoole comme cadre de communication réseau peut considérablement améliorer l'efficacité de l'équipe de R&D informatique de l'entreprise et se concentrer davantage sur le développement de produits innovants.

Swoole dispose d'un serveur IO réseau asynchrone non bloquant et multithread intégré au niveau de la couche inférieure. Les programmeurs PHP n'ont qu'à gérer les rappels d'événements et n'ont pas besoin de se soucier de la couche sous-jacente.

Contrairement aux frameworks entièrement asynchrones tels que Nginx/Tornado/Node.js, Swoole prend en charge à la fois entièrement asynchrone et synchrone.

Quand utiliser la synchronisation et quand utiliser l'asynchrone. Expliquez-le ici.

Nous n'acceptons pas l'utilisation de rappels asynchrones pour le développement de fonctions. La méthode de synchronisation PHP traditionnelle pour implémenter les fonctions et la logique est la solution la plus simple et la meilleure. Appeler partout comme node.js sacrifie simplement la maintenabilité et l'efficacité du développement.

Mais parfois, il convient d'utiliser des programmes asynchrones, tels que FTP, serveur de chat, smtp, serveur proxy, etc. Des programmes serveur qui se concentrent principalement sur la communication et la lecture et l'écriture de disques, suivis des fonctions et de la logique métier.

"Les API des fonctions d'extension de PHP sont toutes synchrones", cette affirmation n'est pas correcte. En fait, les principaux endroits où la synchronisation est bloquée sont les appels réseau et la lecture et l'écriture de fichiers.

Par exemple, mysql_query doit communiquer avec le serveur de base de données mysql, curl doit appeler le réseau, file_get_contents doit lire et écrire des fichiers, et d'autres fopen/fwrite/fread/fgets/fputs bloquent les API. De plus, les fonctions array/string/mbstring de PHP et d'autres fonctions ne sont pas bloquantes.

Swoole fournit un client socket asynchrone, un mysql asynchrone et la version 1.6.12 fournit également des fonctions de lecture et d'écriture de fichiers asynchrones et des fonctions de requête DNS asynchrones. De plus, l'API tâche/fin est fournie, ce qui peut résoudre complètement le problème de blocage des E/S.

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