タグ付けされた質問 「fork-join」

11
fork / joinフレームワークはスレッドプールよりも優れていますか?
大きなタスクを最初にN個のサブタスクに分割し、それらを(Executorsから)キャッシュされたスレッドプールに送信し、各タスクが完了するのを待つだけで、新しいfork / joinフレームワークを使用する利点は何ですか?fork / join抽象化を使用することで問題が単純化される、またはソリューションが何年にもわたって持ってきたものよりも効率的になる方法を理解できません。 たとえば、チュートリアルの例の並列化されたぼかしアルゴリズムは、次のように実装できます。 public class Blur implements Runnable { private int[] mSource; private int mStart; private int mLength; private int[] mDestination; private int mBlurWidth = 15; // Processing window size, should be odd. public ForkBlur(int[] src, int start, int length, int[] dst) { mSource = src; mStart …
134 java  fork-join 

3
静的初期化子でラムダを使用した並列ストリームがデッドロックを引き起こすのはなぜですか?
静的初期化子でラムダを使用して並列ストリームを使用すると、CPU使用率がなく、一見永遠にかかるという奇妙な状況に遭遇しました。コードは次のとおりです。 class Deadlock { static { IntStream.range(0, 10000).parallel().map(i -> i).count(); System.out.println("done"); } public static void main(final String[] args) {} } これは、この動作の最小限の再現テストケースのようです。もし私が: 静的初期化子の代わりにmainメソッドにブロックを配置します。 並列化を削除する、または ラムダを削除し、 コードは即座に完了します。誰かがこの振る舞いを説明できますか?それはバグですか、それともこれは意図されたものですか? OpenJDKバージョン1.8.0_66-internalを使用しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.