問題タブ [executors]

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 投票する
2 に答える
772 参照

java - マルチスレッド newSingleThreadExecutor 飢餓デッドロック

これは Java Concurrency in Practice からそのままです。次の場合、デッドロックが発生します。

これがデッドロックを引き起こす理由を理解できません。私はチェックしましたが、そうです.header.get()を返し、取得したヘッダーを出力しますが、どのようにデッドロックしますか?

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

java - Javaで一括HTTPを送信する

このプログラムは、ファイルを読み取り、各行を http として送信するために使用されます。ファイルのすべての行が URL です。

例 http: //localhost:8080/?a=1&b=2

SendTask.java

}

500,000 行のファイルを送信すると、機能します。しかし、100,000 行を送信すると、1 つのエラーが発生しました: java.lang.OutOfMemoryError: GC オーバーヘッド制限を超えました。

  • 少なくとも 100 万行を送信できるようにプログラムを変更するにはどうすればよいですか? ありがとう!
0 投票する
2 に答える
310 参照

java - あるエグゼキュータ FixedThreadPool が別のエグゼキュータ SingleThreadExecutor を待つにはどうすればよいですか?

私には3つのタスクがあります:

  • 最初: htmlFile --------\ の両方を同じ実行プログラムで順番にダウンロードします。正常に動作しています。
  • 2 番目: htmlFile を解凍します ----------/

  • 3 番目: イメージのダウンロード ------> 別のエグゼキュータで、イメージを 5 つのファイルに分割してダウンロードする必要があります。そのためには、FixedThreadPool(5) を使用しています。

しかし、クリックしてダウンロードすると、htmlDownload の終了を待たずに画像のダウンロードが開始されます。どうすれば executorPool が別の executor singleThread を待つことができますか??

メインクラス:

私の DownloadUtil クラス:

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

java - タイムアウト後にcountDownLatch.await()を中止します

を使用しExecutorServiceて3スレッドプールを実装し、CountDownLatchを使用してすべてのスレッドの完了を監視し、さらに処理します。

私はcountDownLatch.await()すべてのスレッドが完了するまで待っていました。countDownLatch.await()タイムアウトが45秒の場合、このプロセスを中止したいと思います。どうすればこれを実装できますか?

0 投票する
2 に答える
17685 参照

java - ScheduledExecutorService、エグゼキュータを停止せずにアクションを停止する方法は?

私はこのコードを持っています:

何らかのイベントの後、 を実装するrun()のメソッドで宣言されたアクションを停止する必要があります。SomethingDoerRunnable

これどうやってするの?Executor をシャットダウンできません。定期的なタスクのみを取り消す必要があります。これに使えますresult.get()か?また、可能であれば、どのように機能するか教えてください。

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

executors - Executors.newFixedThreadPool のパラメータの決め方

Executors.newFixedThreadPool(n) に割り当てる適切な値は何ですか? これを行う式はありますか?

0 投票する
7 に答える
1011 参照

java - Java 並行性: 少数のスレッドで多くの「無限」タスクを実行する

ニュートンの法則に従って空間を移動する一連の N 個の粒子の (同時) シミュレーターを構築しています。私の考えは、各粒子をタスクとしてモデル化することです。タスクは、他の粒子 (タスク) と相互作用して、その位置と質量を取得し、それが受ける正味の力を計算します。各粒子タスクは次のようなものです

多くのパーティクル (100 以上) を持つことができるので、そのような数の Java スレッド (物理スレッドにマップされる) を作成することはできません。私の考えはRuntime.getRuntime().availableProcessors()+1、多くのタスクを実行できるスレッドを使用することです。

ただし、粒子タスクが終了しないため、FixedThreadExecutor を使用できません。内部で一種のスケジューリングも実行できる必要がある FixedThreadExecutor を使用したいと思います。この目的のために何か知っていますか?

または、並行性の観点からそのようなシステムをモデル化するためのより良いアプローチを提案してもらえますか (たとえば、別のタスクの分割)。

Ps: 私は「古典的な」同時実行メカニズムに限定されており、アクターや同様のアーキテクチャは含まれていません。