2

私はクエーサーが初めてで、以下のような例があるかどうか知りたい. または、誰かがこれを行う方法について正しい方向に向けることができたとしても。

だから私がする必要があるのは、jsonファイルを読むことです。インデックスごとに新しいファイバーを作成し、json から値を渡します。各ファイバーは、json の値に基づいて実行関数を作成します。ただし、値によっては、一部のファイバーで処理に時間がかかる場合があります。完了するまで最大 5 秒待機します。

これらのファイバーはすべて並行して実行されると思います。

これは可能ですか?どんな例でも素晴らしいでしょう。

4

1 に答える 1

4

私はクエーサーチームの一員です。

ファイバーは同時に実行さます。実際の並列処理は、プログラムを実行する CPU コアの数とファイバー エグゼキューターの並列処理レベルによって異なります。これは、デフォルトでは、CPU コアの数に等しい数のワーカー スレッドを持つ ForkJoinPool です。

ファイバーはスレッドと同じように使用されます (ただし、はるかに軽量です): ファイバーをスポーンし、ジョブを実行させて結合します。あなたの場合、それ以上のことは必要ないように見えます (Quasar はファイバーとスレッドの両方に対して、Go のようなチャネル、Erlang のようなアクター、データフローも提供していますが)、ファイバーを確認することをお勧めします。 docsにもたくさんの例がありますが、Gradle テンプレートから始めることを特にお勧めします。

匿名クラスから作成されたインスタンスにインデックス/値をクロージャー変数として渡すか、名前付きサブクラスを作成Fiberしてコンストラクター引数として受け取ることができます。

エージェントを実行することを忘れないでください。エージェントを含む単一アーティファクトの実行可能 JAR をビルドする必要がある場合は、 Capsuleを参照することをお勧めします。

Quasar-Pulsar ユーザー グループへの参加も検討してください。

于 2016-04-24T07:51:57.003 に答える