c++的coroutine的确有传染问题,所以它有自己受限的使用场景。
我的感觉是,这个模型特别适合异步消息驱动模型,因为每个消息的处理都是相对独立的,可以从一个消息的处理函数入口斩断传染。消息驱动会有一个dispatch消息的loop,刚好用来resume挂起的协程。
并且消息驱动的核心代码少,需要高效简洁。可以让专业的人,使用传统方式实现和维护。(比方于用户代码和内核代码的区别),而项目的主要部分是消息处理函数,用coroutine来写,逻辑更加清楚。也降低了对程序员的水平要求。
我写了一段时间,有了一些不成熟的感悟,提出来供大家批判。
- 来自 水木社区APP v3.5.7
【 在 hgoldfish 的大作中提到: 】
: 这就是 await 这个语法传染性的问题了。
:
: 和内存管理不是一回事。
:
: 反正我也不看好 c++20 的协程。但同时也指出你用 ucontext 没问题,只是额外搞的这个栈内存切换是在风险的。
--
FROM 182.129.60.*