从4.0版本入手下手Swoole供应了完整的协程(Coroutine)+ 通道(Channel)特征,带来全新的CSP编程模子。
应用层能够运用完整同步的编程体式格局,底层自动完成异步IO。 (引荐进修: swoole视频教程)
go(function () {
$redis = new Swoole\Coroutine\Redis();
$redis->connect('127.0.0.1', 6379);
$val = $redis->get('key');
});
4.0.0或更高版本仅支撑PHP7
4.0.1版本入手下手去除了--enable-coroutine编译选项,改成动态设置
协程能够明白为纯用户态的线程,其经由过程合作而不是抢占来举行切换。相干于历程或许线程,协程一切的操纵都能够在用户态完成,建立和切换的斲丧更低。
Swoole能够为每个要求建立对应的协程,依据IO的状况来合理的调理协程,这会带来了以下上风:
开发者能够无感知的用同步的代码编写体式格局到达异步IO的效果和机能,避免了传统异步回调所带来的离散的代码逻辑和堕入多层回调中致使代码没法保护
同时因为底层封装了协程,所以对照传统的PHP层协程框架,开发者不须要运用yield关键词来标识一个协程IO操纵,所以不再须要对yield