热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

异步PHP是什么?

同步编程与异步编程的区别在讨论异步PHP的优点之前,让我们快速回顾一下同步编程模型和异步编程模型之间的区别。同步代码是逐行顺序执行的。

同步编程与异步编程的区别

在讨论异步PHP的优点之前,让我们快速回顾一下同步编程模型和异步编程模型之间的区别。同步代码是逐行顺序执行的。必须先完

成前面的任务,然后才能开始另一个任务。在异步代码中,可以同时完成多个任务,这可以大大提高应用程序性能和用户体验。

相关课程推荐:《PHP编程入门到精通》

什么是同步PHP?

同步PHP是指使用同步模型编写的PHP代码。PHP最初是为了支持同步开发而创建的,因此大多数PHP开发人员习惯于使用该语言编写同步代码。使用Apache的mod_php或使用Apache或Nginx的php-fpm进行Prefork。

你在寻找PHP的基础教程吗?查看此 blog, PHP开发基础:什么是PHP,为什么如此流行,以及PHP的优点是什么?

什么是异步PHP?

异步PHP是指使用异步模型编写的PHP代码。通过使用诸如Swoole之类的扩展,或诸如ReactPHP之类的PHP框架,您可以使PHP使用事件循环异步地接受请求和响应。

同步和异步PHP编程的主要区别是什么呢?

在许多应用程序中,CPU在I / O任务期间处于空闲状态的时间很多。异步PHP思路是通过使非阻塞I / O任务在后台运行,在CPU等待完成I / O所需的数据和指令时处理其他任务,充分利用所有可用的CPU周期来执行其他任务。 同步PHP,CPU将仅处理I / O任务。当前任务完成后,继续处理队列中的下一个任务。

与同步PHP编写的应用程序相比,使用异步PHP可以实现闪电般的性能.。在一些基准测试中, 相较于在同步代码中使用类似 php-fpm的进程加速器,使用Swoole启用异步PHP可以将吞吐量提升100倍。这就是为什么php-fpm不支持使用类似Websockets协议进行异步实时通信的原因。

你应该使用哪一个PHP?

与大多数有关运行、web服务器和一般的编程问题一样,不同的案例会决定是使用同步PHP还是异步PHP。要使用异步PHP,你的代码必须支持它。PHP开发人员习惯使用的大多数的扩展都会阻塞进程的调用(也称为I/O阻塞),这使得异步模型不可实现。

例如,要利用Swoole,当遇到一个I/O请求调用时,它需要将该调用发送到后台,然后继续执行下一条指令。当I/O调用返回数据时,Swoole需要将控制权归还给已经发送到后台的I/O调用,以便它可以控制请求数据给进程。重写你的代码去支持异步进程可能需要一些重构才能工作。但是,将来你节省下来的时间可能是值得的。

开始异步PHP项目

由于你编写的代码方式要支持异步进程,你必须利用一个可以这么做的项目。这里有我们的前三项建议:

  • Swoole – 协同PHP异步编程框架。

  • Reactphp – PHP的事件驱动、非阻塞 I/O。

  • Amphp – PHP非阻塞并发框架。

推荐教程:《本文来自 第一PHP社区 php教程栏目,欢迎学习!》

以上就是异步 PHP 是什么?的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Windos10系统下,Nginx设置文件服务器下载,关于中文路径被浏览器编码后,nginx无法访问问题
    windows10默认编码为gbk,需要在区域设置中,启用UTF—8编码,然后nginx配置文件中在设置charset,(edge可借助charset工具扩展,查看当 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • CentOS 7配置SSH远程访问及控制
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • PHP语言之所以能有今天的地位,得益于PHP语言设计者一直遵从实用主义,将技术的复杂性隐藏在底层。PHP语言入门简单,容易掌握,程序健壮性好。 ... [详细]
  • HTTP协议之总结展望篇
    文章目录HTTP2HTTP2内核HTTP3Nginx:高性能的Web服务器OpenResty:更灵活的Web服务器网络应用防火墙(WAF)CDN ... [详细]
  • php怎么做rpc通信(RPC通信)
    导读:很多朋友问到关于php怎么做rpc通信的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
author-avatar
kei_herme
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有