二:开发环境的配置以及第一段协程代码

大家可以自行搭建,也可以使用我这里推荐的一个学习环境镜像
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)

 

 

 

posted @ 2019-12-07 14:56  痞子胥  阅读(141)  评论(0编辑  收藏  举报