我正在阅读有关的许多文章或绿色线程,或我们可以为用户态线程指定的任何其他名称。我开始阅读文档和教程(这些是C++链接,但是我不需要特定的语言):
但是,似乎我无法掌握有关纤维的要点。我知道光纤是协作执行多任务的一种方法,但是据我所知,实际情况下有关线程和光纤之间相互作用的文档很少。
例如,每个文档实际上都以异步I/O为例,但是如果我没有受I/O约束的问题怎么办?例如,如果我的问题是计算一个大文件中的单词数怎么办?在这里,我只是将文件分割成多个线程,光纤可以以某种方式提供帮助吗?我认为诸如数值问题(例如矩阵/vector 运算)之类的受CPU约束的计算不适用于光纤,但同样,我可能完全错了。
最佳答案
不。
异步I/O是最初在多CPU系统尚未脱离实验室时解决线程的问题。线程是构建程序的一种替代方法,该程序必须等待来自几个不同的非同步源的输入,并且必须及时响应这些输入。
根据它们的实现方式,当时的线程可能在从“几乎相同”到“与今天我们所谓的“绿色线程”或“光纤”完全相同”的范围内变化。
当多CPU系统上市时,线程被视为一种利用并行处理功能的自然且显而易见的方法。