我在D中尝试线程和光纤,我想知道在主线程运行时是否可以在不同的CPU上运行光纤。如果不是这种情况,那么使用Fibers over Threads的原因是什么。 (非常欢迎实际例子)
我尝试用Fibers编写一些初始程序,然后在一段时间后切换到下一根光纤。但是我注意到cpu的使用只停留在一个cpu上。
D州的文件:
请注意,不要求将光纤绑定到光纤 具体线程。相反,纤维可以在线之间自由通过 只要他们目前没有执行。
这是否意味着如果我希望它使用不同的CPU,我必须提供光纤运行的线程?如果是这种情况,那么我没有看到目的。
提前致谢!
答案 0 :(得分:8)
Fibers是协作式多任务处理的轻量级机制,与其创建者/调用者在同一个线程中运行。如果需要在不同的CPU上运行任务,请使用线程。光纤的目的是提供快速的协作上下文切换和实现协同程序等模式的机制。
答案 1 :(得分:6)
这篇文章在比较两者方面做得非常好。 Getting more fiber in your diet