c++ - 什么是 "control block"

标签 c++ boost

在阅读 boost::coroutine 时文档,我遇到了术语 control block :

The solution is that each coroutine has its own stack and control-block

虽然堆栈 的概念很熟悉,但我以前从未遇到过术语控制 block 。下图可能提供了对什么是控制 block 的上下文(没有双关语意)的理解

source: boost documentation

由于我无法通过 google 找到更好的解释(提供的 boost context 链接只会让事情变得更加晦涩难懂),谁能提供一个可靠的定义并解释控制 block 的工作原理?

谢谢

最佳答案

该术语可以追溯到 IIRC CP/M 的过程控制 block ,至少有 4 个十年。它是描述运行上下文的数据 block 。后来,threads 有了 Thread Control Blocks,这里对 state 的需要意味着类似的数据结构,所以 Control Block 这个名字才有意义。唯一奇怪的是,通常这些控制 block 是操作系统结构,但 boost 协程不是操作系统管理的。

关于c++ - 什么是 "control block",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27216460/

相关文章:

c++ - 构建 mpi2 时出错 - 链接 libboost_system 时出现问题

c++ - 使用函数 boost Qi 编写规则

c++ - boost::fusion 的目的是什么?

c++ - 将map <string,int>保存到文本文件

c++ - TinyXML:将文档保存为 char * 或字符串

c++ - 有没有办法在编译时检查 std::initializer_list 参数的数量?

c++ - Qt创建MDI文档窗口

c++ - C++类中的静态声明

c++ - 使用 gdbus-codegen 生成的代码时如何堵塞内存泄漏?

c++ - Ax=B 使用 boost 1_58 求解稀疏矩阵