[Sw] Swoole-4.2.9 可以尝试愉快应用 Swoole 协程了
[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