2011-09-20 19 views
9

私はDのスレッドとFibersを試していますが、メインスレッドが実行されているときに別のCPUでFibreを実行できるかどうかは疑問でした。そして、これが当てはまらない場合は、スレッド上のファイバーを使用する理由は何でしょうか。 (実際の例は大歓迎です)Fibers over D in D

私はしばらくして次のファイバに切り替えるFibersで初期プログラムを書きました。どのように私はCPU使用量が1CPUにとどまっていることに気づいた。

Dのドキュメントの状態:

繊維が1つの 特定のスレッドにバインドする必要はないことに注意してください。むしろ、繊維は、現在実行されていない限り、スレッド の間を自由に通過することができる。

これは、別のCPUを使用するにはファイバを稼働させるスレッドを用意しなければならないということですか?これが当てはまる場合、私は目的を見ません。

ありがとうございます!

答えて

6

この記事では、この2つを比較する非常に良い仕事をしています。 Getting more fiber in your diet

+0

ありがとうございました、この記事はうまく説明しています! –

8

ファイバーは、協調マルチタスクのための軽量メカニズムであり、作成者/呼び出し元と同じスレッドで実行されます。別のCPUでタスクを実行する必要がある場合は、スレッドを使用します。ファイバーの目的は、コルーチンなどのパターンを実装するための、速く協調的なコンテキスト切り替えとメカニズムを提供することです。