並行してリストのためのメソッドを呼び出し?

チャールズ・ノイエ:

私はすべてのオブジェクトメソッドのリストとコールを反復処理が、並行しなければなりません。並列メソッド呼び出しを待つ必要がありますループした後、そこに他の文、。どのように私はJAVAでそれを行うことができますか?

public void a(List<Object> list) {
    for(Object o : list) {
        asynchMethod(o); // this n method call must run in the same time
    }

    // wait for all asynchMethod result
    /**
     * ...other statements
     */
}

private void asynchMethod(Object o) {
    // some code
}
bramdc:

私は、あなたは、Java 8を使用していることがわかり、あなたがしてparallelStreamのアプローチを使用することができます。

public void a(List<Object> list) {
    list.parallelStream().forEach(s -> asyncMethod(o));
}

並列メソッド呼び出しを待つ必要があります

:foreachのは、それが次のコード行に前方に移動するまで終了するのを待つだろう別名端末操作であるJavaの並列ストリーム:仕上げに並列ストリームのスレッドを待ちますか?

あなたはparallelStreamについてのいくつかのより多くの情報が必要な場合:https://docs.oracle.com/javase/tutorial/collections/streams/parallelism.html#executing_streams_in_parallel

あなたがスレッドが用途をparallelstream何を知りたい場合は:どのように多くのスレッドは、Java 8でparallelStreamに生み出していますか?

スレッドとpararellStreamを使用して気をつけて、彼らは問題の独自のヒープが付属しています。それらを使用する前に、あなたは常に慎重に状況を調査し、彼らがもたらす可能でき、トラブルの価値があるかどうかを確認する必要があります可能な場合万一、私はいつも、並列ストリームを使うのか?

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=4967&siteId=1