首页 >php框架 >Swoole > 正文

swoole版本的区别

原创2019-12-16 11:39:2101895

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版本的区别的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:swoole
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息
    推荐视频教程
  • 千锋教育PHP异步通信框架Swoole解读视频教程千锋教育PHP异步通信框架Swoole解读视频教程
  • 视频教程分类