問題タブ [countdownlatch]
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.
java - Callable を実装するクラスから 1 つのオブジェクトを返す方法
を実装するクラスがありcallable
、呼び出し可能なクラスがタイプ のオブジェクトを 1 つだけ返すようにしますMat
。Future リストを次のように宣言しました。
しかし、私は受け取りますCannot instantiate the type Future<List<Mat>>
私が間違っていることを教えてください。
コード:
java - CompletableFuture を使用して値を返す方法
CompletableFuture
例を作成しました。?を使用して値を返す方法を知りたいです。も変更しCompletableFuture<Void> exeFutureList
ましたがCompletableFuture<Integer> exeFutureList
、Eclipseは常にVoidに戻すことを提案しています。
CompletableFuture を使用して値を返す方法を教えてください。
コード:
java - タスク完了後の CountdownLatch countDown メソッドの動作
サイズ 3 のカウントダウン ラッチがあるとします。つまり、3 つのスレッドが親スレッドから生成されます。
これで、それぞれのタスクの完了後に countDown を呼び出す 3 つのスレッドができます。
私の質問は、タスクが完了した瞬間に、そのタスクを実行していたスレッドの動作がどうなるかということです。
そのスレッドはその瞬間に終了しますか、それともアイドル状態に入ってしばらく待ちますか。?
カウントダウンラッチのJavaドキュメントのどこにでもあります。
java - CountDownLatch はスプリアス ウェイクアップの影響を受けますか?
待機/通知やロック/条件などの同時実行管理メカニズムは、偽のウェイクアップの影響を受けるようです。開発者は、状態が実際に変化したことを再確認することで、これらの予期しないウェイクアップに対応します。
CountDownLatch に関しては、偽のウェイクアップが問題になりますか?
java - Java Fork/Join プール、ExecutorService および CountDownLatch
Java には、Fork/Join プール、Executor Service、CountDownLatchという 3 つの異なるマルチスレッド技術があります。
Fork/Join プール( http://www.javacodegeeks.com/2011/02/java-forkjoin-parallel-programming.html )
Fork/Join フレームワークは、分割統治アルゴリズムを簡単に並列化できるように設計されています。このタイプのアルゴリズムは、同じタイプの 2 つ以上のサブ問題に分割できる問題に最適です。再帰を使用して、問題を単純なタスクに分解し、それらが直接解決できるほど単純になるまで続けます。次に、サブ問題の解決策を組み合わせて、元の問題の解決策を提供します。
ExecutorServiceは、Executor クラスを拡張し、非同期実行を表すインターフェースです。非同期タスクの終了を管理し、進行状況を検出するメカニズムを提供します。
invokeAll() : 指定されたタスクを実行し、すべてが完了するとステータスと結果を保持する Future のリストを返します。Future.isDone() は、返されたリストの各要素に対して true です。
CountDownLatch :( http://examples.javacodegeeks.com/core-java/util/concurrent/countdownlatch-concurrent/java-util-concurrent-countdownlatch-example/ )
CountDownLatch は同期で使用され、他のスレッドで実行されている一連の操作が完了するまで、1 つ以上のスレッドを待機させることができます。
私の仮定:
これらのどちらの方法でも、最終結果はすべてのタスク/スレッドの完了後にのみわかります。
これらの 3 つの代替案は、相互に補完的または補足的ですか?