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

 

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

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

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

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

(defer:https://wiki.swoole.com/wiki/page/1015.html

 

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

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

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

 

[ 自动开启协程 ]

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

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

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

(enable_coroutine:https://wiki.swoole.com/wiki/page/949.html

 

Happy coding.

Link: https://www.cnblogs.com/farwish/p/10236757.html

posted on 2019-01-08 01:06 黑眼诗人 阅读() 评论() 编辑 收藏

版权声明:本文为farwish原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/farwish/p/10236757.html