浅谈协程
在开始展开协程前, 我们先来看一下一些非 C++语言中的协程实现.
1.1 其他语言中的协程实现
很多语言里面, 协程是作为 "一类公民" 直接加入到语言特性中的, 比如:
1.1.1 Dart1.9...我们来看一下协程执行到中断点和重入点的时候具体发生的事情:中断点:协程中断执行的时候, 我们需要对当前的执行状态:
协程执行到哪了
协程当前使用的 context 进行保存, 并将程序的执行权归还给外界..., 不可避免的会出现协程与子协程, 协程与协程之间的复合关系, Asio 通过重载|| 运算和&& 运算, 来尝试表达多个异步任务的组合, 具体的作用如下:
||: 用来表达两个同时开始的异步任务, 其中一个成功执行..., 则返回这个执行的结果, 并取消另外一个异步任务的执行.&&: 用来表达两个同时执行的异步任务, 两个任务都成功后返回包含这两个任务执行结果的std::tuple值, 其中任意一个任务失败, 则直接返回错误...通过这种机制, 我们一定程度拥有了对任务的复合关系进行表达的能力, 比如对一个原本不支持超时的异步任务, 我们可以非常简单的||上一个超时异步任务, 来解决它的超时支持问题.