一个 `boost::fiber` 库的示例

一个 `boost::fiber` 库的示例

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

纤维是一种用户空间的线程,适合处理并发IO操作,具有较低的上下文切换成本。本文展示了一个简单程序,创建两个分离的纤维,分别调用print_a和print_b函数,直到共享变量i达到20。程序输出包含十个a、十个b和十个B,B的位置不确定。

🎯

关键要点

  • 纤维是一种用户空间的线程,适合处理并发IO操作,具有较低的上下文切换成本。
  • 程序创建两个分离的纤维,分别调用print_a和print_b函数,直到共享变量i达到20。
  • print_a函数打印字符'a',print_b函数打印字符'b'并启动一个线程打印'B'。
  • 主函数中创建一个共享变量i,初始化为0,两个纤维分别循环调用print_a和print_b,直到i达到20。
  • 程序输出包含十个'a'、十个'b'和十个'B','B'的位置不确定。
  • 程序的输出顺序可能会有所不同,但'b'一定在'a'之后。
➡️

继续阅读