PHP协程概念知识-mixphp

简介: PHP协程概念知识-mixphp

协程
协程,又称微线程,纤程。英文名 Coroutine,MixPHP 从 v1.1.0 开始支持协程开发。

优势
协程模式与常驻模式/传统模式相比:

常驻模式/传统模式都属于同步阻塞编程,由于同一个进程不能并行处理请求,所以为了提高并发,只能开启更多的进程,通常超过 100 甚至更多,每个进程都有基础的内存消耗,加起来就很多了,而且受限于 Linux 总进程数限制,并发总数无法突破,加上进程非常多之后,CPU 需要更多的线程切换,浪费了很多性能,当然相比 FPM 的传统模式每次都需从头开始,常驻模式还是要好非常多的,但是协程显然更加优秀。

协程模式的执行方式:

协程模式中一个进程可以同时执行 N 个请求,但同一时刻只执行其中的某一个请求,也就是说,当执行到 MySQL/Redis 这些客户端时,由于需要等待客户端响应,常驻模式/传统模式通常是在傻傻的等待响应,而协程这个时候会挂起当前协程,切换到其他协程中去处理其他请求,所以协程能同时处理 N 个请求,每增加一个请求只需增加一些内存消耗,相比增加一个进程的内存消耗,显然是少太多的,由于协程能并行处理,所以通常只需配置于 CPU 数量 1~2 倍左右的进程数即可,更少的进程带来更少的 CPU 线程切换,又减少很多性能损耗。

如何开启协程
需 Swoole >= 4.2.2 才可开启。

MixPHP 默认是关闭协程的,可按下面操作开启协程。

打开 mix-httpd 服务器的配置文件:

apps/httpd/config/httpd.php

HTTP 协程开发
MixPHP 的 HTTP 协程开发,简单到不可思议,协程变量隔离什么的都处理好了,用户只需直接使用协程客户端即可,而且协程客户端使用方法于常驻模式完全一致,也就是说协程模式与常驻模式只有配置文件上的差别,还有多了一个连接池的配置而已。

协程客户端请阅读 “客户端” 章节的内容。

目录
相关文章
|
1月前
|
PHP 调度 开发者
探索PHP新特性:协程编程的崛起
PHP作为一种流行的服务器端脚本语言,近年来不断发展壮大。本文将重点探讨PHP中新兴的技术领域——协程编程,介绍其原理、优势以及在实际项目中的应用场景,帮助读者更好地理解并运用这一技术。
|
8月前
|
PHP
PHP的高端技术和概念
PHP的高端技术和概念
|
物联网 程序员 网络性能优化
simps/mqtt:适用于PHP的 MQTT 协议解析和协程客户端
Simps 的第一个版本 MQTT 库 就是参考了 Workerman 的实现,使其能够使用 Swoole 的协程能力,同时也修复了一些问题
649 0
|
Go PHP 调度
Opensearch PHP SDK协程兼容改造
## 摘要 本文简单的介绍了协程的概念及基本原理,以及协程在PHP中的一种实现方案(PECL/Swoole)。最后,结合Opensearch PHP SDK的协程改造过程演示了具体的使用方法。 ## 协程 与进程、线程一样,协程是逻辑代码线之间隔离的一种方法。只不过进程和线程是由操作系统直接支持,并负责调度的;协程的粒度比线程更小,操作系统无法感知,因此调度工作必须由程序
1916 0
|
Java Apache PHP
PHP相关概念及配置
php MIME,http,html MIME:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型浏览器:插件,或是调用外在程序。
1222 0
|
7月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
81 0
|
7月前
|
关系型数据库 MySQL 数据库连接
PHP 原生连接 Mysql
PHP 原生连接 Mysql
107 0