在window中安装swow体验php协程
Swow 是一个 C 扩展,你必须先安装编译好的 DLL 扩展文件到你的 PHP 中,才能使用。
✅ 步骤一:确认你的 PHP 环境信息
PHP 8.1.10 (cli) (NTS Visual C++ 2019 x64)
这意味着:
PHP 版本是 8.1
线程安全:非线程安全(NTS)
编译器:Visual C++ 2019
架构:x64
⚠️ Swow 的扩展 DLL 必须与你的 PHP 完全匹配(PHP 版本、线程模型、架构、VC版本)!
✅ 步骤二:下载 Swow 的 DLL 扩展
https://github.com/swow/swow/releases
选择与你当前环境匹配的版本,例如:
PHP 8.1
NTS
x64
VC15(VC2019)
✅ 步骤三:安装 Swow 扩展
将下载的 php_swow.dll 文件放入你的 PHP 扩展目录,路径类似:
D:\php\phpEnv\php\php-8.1\ext\php_swow.dll
编辑你的 php.ini 文件,添加一行:
extension=php_swow.dll
验证是否在win下扩展成功
php --ri swow
文档地址
https://docs.toast.run/swow-blog/chs/coroutine.html
参考文档
https://cloud.tencent.com/developer/article/2454567
当 WaitReference 对象被闭包函数引用时,WaitReference 引用计数加1,当闭包函数退出时,对象引用计数减1
https://www.php.net/manual/zh/features.gc.refcounting-basics.php
有时候并发在异步的场景中,可以用这个判断是否是最后一个异步脚本执行完成,全部完成之后。使用mysql的saveall。
通过redis来暂缓避免对mysql的读写,减少并发。最后统一入库。