我正在阅读有关的许多文章或绿色线程,或我们可以为用户态线程指定的任何其他名称。我开始阅读文档和教程(这些是C++链接,但是我不需要特定的语言):

  • Distinguishing coroutines and fibers
  • Producer/Consumer using Boost.Fibers
  • Boost.Fiber documentation
  • 很多很多其他的

  • 但是,似乎我无法掌握有关纤维的要点。我知道光纤是协作执行多任务的一种方法,但是据我所知,实际情况下有关线程和光纤之间相互作用的文档很少。



    例如,每个文档实际上都以异步I/O为例,但是如果我没有受I/O约束的问题怎么办?例如,如果我的问题是计算一个大文件中的单词数怎么办?在这里,我只是将文件分割成多个线程,光纤可以以某种方式提供帮助吗?我认为诸如数值问题(例如矩阵/vector 运算)之类的受CPU约束的计算不适用于光纤,但同样,我可能完全错了。

    最佳答案



    不。



    异步I/O是最初在多CPU系统尚未脱离实验室时解决线程的问题。线程是构建程序的一种替代方法,该程序必须等待来自几个不同的非同步源的输入,并且必须及时响应这些输入。

    根据它们的实现方式,当时的线程可能在从“几乎相同”到“与今天我们所谓的“绿色线程”或“光纤”完全相同”的范围内变化。

    当多CPU系统上市时,线程被视为一种利用并行处理功能的自然且显而易见的方法。

    10-07 23:12