.
----
2 strand 的实现细节
因为strand的特殊性, 肯定是没有办法直接使用前面介绍的普通任务的post()机制和相关的operation包装来完成相关的封装的, 我们分为三个部分来分析...Function类型退化后, 继续调用strand_service::post(), 注意此处直接抛弃了外部传递的allocator, 应该是1.16版本实现不完整, 直接没给strand的operation...匹配正确的allocator, 翻阅1.22的代码实现, 这部分的allocator是有被正确处理的, 对于我们来说这处细节影响不大, 我们直接忽略.
----
2.2.2 level 2: strand_service..., 略有差异的地方是此处使用的不是execution_op, 而是使用了另外一个类型 completion_handler, 该类型的实现与execution_op基本没有太大的差别,...实际上我们也可以很直白的来理解它, 当strand刚开始工作时, 我们推送一个任务, 必然走的是2这个分支, 如果推送的任务没有得到及时的执行, 那么locked_标识依然还是true, 则后续推送的任务会被加入到