Opensearch PHP SDK协程兼容改造
摘要
本文简单的介绍了协程的概念及基本原理,以及协程在PHP中的一种实现方案(PECL/Swoole)。最后,结合Opensearch PHP SDK的协程改造过程演示了具体的使用方法。
协程
与进程、线程一样,协程是逻辑代码线之间隔离的一种方法。只不过进程和线程是由操作系统直接支持,并负责调度的;协程的粒度比线程更小,操作系统无法感知,因此调度工作必须由程序自己完成。
从目标上来看,协程与epoll等模型基本一致:都是为了降低进程(线程)调度引发的频繁上下文切换的资源消耗,最终提高系统效率。使用epoll模型编写的代码大量使用回调函数(类似下面的伪代码):
connect(uri, connected() {
send(data, sent() {
receive(received(response) {