9

我正在试验 D 中的线程和光纤,我想知道是否可以在主线程运行时在不同的 CPU 上运行光纤。如果不是这种情况,那么使用 Fibers over Threads 的原因是什么。(非常欢迎实际例子)

我尝试用 Fibers 编写一些初始程序,一段时间后我切换到下一个 Fiber。但是我注意到 cpu 使用率只停留在一个 cpu 上。

D 的文档指出:

请注意,没有要求将纤维绑定到一个特定线程。相反,只要它们当前没有执行,纤维就可以在线程之间自由传递。

这是否意味着如果我希望它使用不同的 CPU,我必须为光纤提供一个线程来运行?如果是这种情况,那么我看不到目的。

提前致谢!

4

1 回答 1

8

Fibers 是一种用于协作多任务的轻量级机制,并在与其创建者/调用者相同的线程中运行。如果您需要在不同的 CPU 上运行任务,请使用线程。纤程的目的是提供快速的协作上下文切换和实现模式(例如协程)的机制。

于 2011-09-20T10:07:06.380 回答