二:开发环境的配置以及第一段协程代码
大家可以自行搭建,也可以使用我这里推荐的一个学习环境镜像
https://hub.docker.com/r/shenyisyn/swoole4.2.9/
基于php7.2 alpine镜像,swoole 4.2.9
一:运行容器
(1):虚拟机中先创建一个空文件夹:
/home/pizixu/swooleadv
(2):下载镜像
docker pull shenyisyn/swoft:2.0.6
(3):创建容器
docker run --name swoole -it -v /home/pizixu/swooleadv:/swoole -p 8085:80 -w /swoole shenyisyn/swoft:2.0.6 sh
ctrl+d 命令退出容器 一旦退出容器就停止了
退出容器后,执行docker start swoole即可
执行进入容器命令 再退出 容器便不会停止了
docker exec -it swoole sh
进行phpstorm的相关sftp设置以后 就可以把 文件 直接同步到虚拟机和 容器里了
从4.0
版本开始Swoole
提供了完整的协程(Coroutine)+ 通道(Channel)特性,带来全新的CSP
编程模型。应用层可使用完全同步的编程方式,底层自动实现异步IO
。
下载 该插件:(swoole 编写代码提示) 放到本地任意目录
https://github.com/wudi/swoole-ide-helper
phpstorm中进行配置
创建协程 可以用 Coroutine::create或go (推荐后者,代码更简洁)
譬如有两个任务
1、从 1 输出到5 。每隔一秒输出
2、从 6输出到10,每隔一秒输出
常规写法:只能按顺序进行运行(相当于单进程 单线程里运行)
协程方式: (可以交叉进行运行,一个协程执行一部分的时候进行协程的切换,协程的调度是由swoole来完成的,而不是CPU来抢占式的来调度)(协程怎么知道什么时候切换回来?:事件驱动https://www.cnblogs.com/staff/p/9709970.html)