問題タブ [forkjoinpool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
114 参照

java - クイック ソートの実装がスタック オーバーフローで失敗したのはなぜですか?

10,000,000 を超える要素のコレクションを並べ替えるアルゴリズムを作成する必要があります。というわけで forkjoin クイックソートを書いてみたのですが、入力が大きくなるとコードが崩れてしまいます。まず、テストケースはランダムリストであり、実装で処理できます。次に、順序付けられた数字と同じように、いくつかの極端なケースを試します。コードが失敗します。コードを確認しましたが、理由がわかりません。

これは以下のコードです。

テスト ケースの失敗:

この問題とかなり混乱しています。返信ありがとうございます。

0 投票する
1 に答える
63 参照

java - ForkJoinFramework は 2 つのワーカーのみを使用します

この作業を最小限に抑えるために、クロールするすべての URL の ConcurrentLinkedQueue を消費する RecursiveTask を作成しました。50 まで分割し、キューが空の場合は直接クロールしますが、そうでない場合は、最初にそれ自体の新しいインスタンスを作成してフォークし、その後 50 のサブセットをクロールし、その後フォークされたタスクに参加します。

ここで問題が発生します。各スレッドが 50 の作業を完了するまで、4 つすべての作業が同時に迅速に行われます。しかし、2 つが動作を停止して参加を待っていると、他の 2 つだけが動作し、新しいフォークとクローリング ページを作成しています。

これを視覚化するために、スレッドがクロールする URL の数を数え、JavaFX GUI に表示させます。

ForkJoinFramewok が許可された 4 つのスレッドのうち 2 つしか使用しないようにするには、何が問題なのですか? 変更するにはどうすればよいですか?

タスクの計算方法は次のとおりです。

そして、ここに私の図のスナップショットがあります: ここに画像の説明を入力

Ps 最大 80 のスレッドを許可する場合は、50 個の URL がクロールされてから 2 つだけが使用されるまで使用されます。

興味のある方は、完全なソース コードをご覧ください: https://github.com/mediathekview/MServer/tree/feature/cleanup

0 投票する
1 に答える
1882 参照

java - Java で Fork と Join に十分なプール サイズがあるかどうかを確認するにはどうすればよいですか?

いくつかの大きなデータに分割統治ソリューションを実装しようとしています。私は fork と join を使用して物事をスレッドに分解します。ただし、フォークメカニズムに関して質問があります。分割統治条件を次のように設定した場合:

呼び出すのに十分なリソースがない場合subWorker(例: プールに十分なスレッドがない場合) はどうなりますか? Fork/Join フレームワークは、使用可能なスレッドのプール サイズを維持しますか? それとも、この条件を分割統治ロジックに追加する必要がありますか?