GoLang之协程和IO多路复用更配[第三话]

GoLang之协程和IO多路复用更配[第三话]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目地址:
https://github.com/fengyoulin/ef

在IO多路复用中实现业务逻辑,
要随着IO事件的等待和就绪
频繁的保存和恢复现场,
这样会加大业务实现复杂度。

而协程天然的适合需要主动让出执行权,
并且可以随时恢复执行的场景~

所以,可以将业务逻辑交给协程来执行,
在业务处理过程中
按需注册IO事件与让出执行权。

在IO多路复用这里,
事件循环依然存在,
依然要在循环中逐个处理就绪的fd。

如果是用于监听端口的fd就绪了,
就建立连接创建一个新的fd,
并交给一个协程来负责,
协程执行入口就指向业务处理函数入口。

如果是其它等待中的fd就绪了,
只需要恢复关联的协程即可,
这样IO多路复用就和具体业务逻辑完全解耦了!

协程和IO多路复用的合作方式大抵如此,
从一个精简版实例上手学习,
对于进一步理解Golang、OpenResty等
经典的协程实现方式大有裨益_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GoGo在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值