您好,登录后才能下订单哦!
小编给大家分享一下swoole版本之间有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
Swoole 2.0正式版发布了。2.0版本最大的更新是增加了对协程(Coroutine)的支持。正式版已同时支持PHP5和PHP7。
基于Swoole2.0协程PHP开发者可以已同步的方式编写代码,底层自动进行协程调度,转变为异步IO。解决了传统异步编程嵌套回调的问题。
与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版本之间有哪些区别”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。