[Sw] Swoole-4.2.9 可以尝试愉快应用 Swoole 协程了

 大家知道 Swoole 提供了方便于服务器、网络编程的模式,简化了多进程编程。

这直接让 PHP 的运行很容易变成常驻内存的 Server 程序,执行效率上有了数倍的提升。

但是这一切还没有让人足够兴奋,直到协程的完整支持,也就是说,可以随时随地并发了。

swoole-4.2.9 及以上,完整支持了 Go + Chan + Defer 编程模式,给了我们在 PHP 上面不一样的体验。

(协程 Go+Chan+Defer:

go :创建一个协程 chan :创建一个通道 defer :延迟任务,在协程退出时执行,先进后出
复制代码

 

就下面是一段简短的程序,来领略一下什么是随时随的并发:

默认允许创建的最大协程数是 3000,超过会有提示,随后循环 1w 次,

循环中使用 go 创建协程,这就创建了 1w 个协程,运行时占用 350M 左右,CPU 5%左右。

 

[ 自动开启协程,同步 IO 切换为异步 IO ]

通过 `php --ri swoole` 查看拓展的一些配置项,enable_coroutine 是默认开启的。

下面这些回调中会自动创建协程,不需要使用 Coroutine::create( ) 或者 go( ) 创建:

  • onWorkerStart
  • onConnect
  • onOpen
  • onReceive
  • redis_onReceive
  • onPacket
  • onRequest
  • onMessage
  • onPipeMessage
  • onClose
  • tick/after 定时器

(enable_coroutine:

本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名 farwish(包含链接http://www.cnblogs.com/farwish/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系。https://www.cnblogs.com/farwish/p/10236757.html

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信