加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php为什么要用swoole?

发布时间:2022-10-17 03:34:12 所属栏目:PHP教程 来源:网络
导读: PHP 高性能微服务架构成为现实
常驻内存
目前传统 PHP框架,在处理每个请求之前,都要做一遍加载框架文件、配置的操作。这可能已经成为性能问题的一大原因,而使用 Swoole 则没有这个问题,

PHP 高性能微服务架构成为现实

常驻内存

目前传统 PHP框架,在处理每个请求之前,都要做一遍加载框架文件、配置的操作。这可能已经成为性能问题的一大原因,而使用 Swoole 则没有这个问题,一次加载多次使用。

协程

如下图所示,这是同一个线程处理并发请求的场景,比如你某个接口中需要调用其它 api 接口或读写大文件,传统同步阻塞和协程异步的优势就体现了出来。

php单线程_单例模式线程安全问题_php swoole 再开线程

详解 Swoole 协程为什么适合 I/O 密集型场景

说到协程,就得先简单说说进程和线程,众所周知进程是很占用资源的,为了处理请求大量创建进程肯定是得不偿失的。而多线程应用就比较多了,在 CPU 层面有几个核心就会执行几个任务,线程一旦创建的多了,就会有线程调度的损耗。

协程是在单线程基础上实现的,它可以最大限度利用 CPU 资源,而不会在等待 I/O 时白白浪费。当然,协程数越多占用的内存也就越多,不过这个是可以接受的,相比进程和线程,占用的资源是相对较少的。

使用协程时,遇到读写文件、请求接口等场景,会自动挂起协程,把 CPU 让给其它协程执行任务,这样可以提升单线程的 CPU 资源利用率,减少浪费,从而提高性能。

协程代码示例:

php单线程_php swoole 再开线程_单例模式线程安全问题

运行结果:

php单线程_单例模式线程安全问题_php swoole 再开线程

从上面结果可以看出,协程方式执行并不是顺序的php单线程,性能更高,在sleep时会把当前线程的任务执行权交给其他协程。

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!