PHP 协程:Go + Chan + Defer Swoole4 为 PHP 语言提供了强大的 CSP 协程编程模式。底层提供了 3 个关键词,可以方便地实现各类功能。 Swoole4 提供的 PHP协程 语法借鉴自 Golang ,在此向 GO 开发组
Swoole4
为PHP
语言提供了强大的CSP
协程编程模式。底层提供了3
个关键词,可以方便地实现各类功能。
Swoole4
提供的PHP协程
语法借鉴自Golang
,在此向GO
开发组致敬PHP+Swoole
协程可以与Golang
很好地互补。Golang
:静态语言,严谨强大性能好,PHP+Swoole
:动态语言,灵活简单易用
本文基于Swoole-4.2.9
和PHP-7.2.9
版本
关键词
go
:创建一个协程chan
:创建一个通道defer
:延迟任务,在协程退出时执行,先进后出
这3
个功能底层实现全部为内存操作,没有任何IO
资源消耗。就像PHP
的Array
一样是非常廉价的。如果有需要就可以直接使用。这与socket
和file
操作不同,后者需要向操作系统申请端口和文件描述符,读写可能会产生阻塞的IO
等待。