您好,欢迎访问一九零五行业门户网

swoole版本的区别

swoole 2.0正式版发布了。2.0版本最大的更新是增加了对协程(coroutine)的支持。正式版已同时支持php5和php7。
基于swoole2.0协程php开发者可以已同步的方式编写代码,底层自动进行协程调度,转变为异步io。解决了传统异步编程嵌套回调的问题。           (推荐学习: swoole视频教程)
与node.js(es6+)、python等语言使用yield/generator、async/await的实现方式相比,swoole协程无需修改代码添加额外的关键词。
与go语言的goroutine相比,swoole协程是内置式的,应用层代码无需添加go关键词启动协程,只需要使用封装好的协程客户端即可,使用更简单。另外swoole协程的io组件在底层内置了超时机制,不需要使用复杂的select/chan/timer实现客户端超时。
目前swoole底层内置的协程客户端组件包括:udpclient、tcpclient、httpclient、redisclient、mysqlclient,基本涵盖了开发者常用的几种通信协议。协程组件只能在服务器的onconnect、onrequest、onreceive、onmessage 回调函数中使用。
swoole 3.0版本中,我们实现了一个全新的 php 内置协程调度器,基于zendvm 的 eg(vm_interrupt) 机制实现,移除了 setjmp/longjmp 的依赖。
使得 swoole 协程可以应用于任何位置,包括php 对象析构函数、魔术方法、反射函数调用 等场景,新的版本号将更改为swoole 3.0,原计划基于libco的c栈协程,推迟到4.0。
新版协程内核依赖php-7.1,因此swoole对php的版本依赖提高至7.1,对gcc的版本依赖提高至4.8。
swoole 4.0基于boost.context 1.60汇编代码实现了全新的协程内核。
在保存php函数调用栈的基础上,增加了c栈的上下文存储。实现了对所有php语法的支持。现在在任意php的函数,包括call_user_func、反射、魔术方法、array_map中均可使用协程。
4.0与2.0是100%兼容的,仅重构了协程内核,api层无变更
4.0分支代码即将升级至c++11标准,建议使用gcc-4.8或更高版本
支持php7.1及以上版本
以上就是swoole版本的区别的详细内容。
其它类似信息

推荐信息