[解決済み] Java 8: 並列FORループ
2023-08-23 14:34:23
質問
Java 8は並列計算に関する多くのユーティリティを提供すると聞いています。したがって、私は与えられたforループを並列化する最も簡単な方法は何でしょうか?
public static void main(String[] args)
{
Set<Server> servers = getServers();
Map<String, String> serverData = new ConcurrentHashMap<>();
for (Server server : servers)
{
String serverId = server.getIdentifier();
String data = server.fetchData();
serverData.put(serverId, data);
}
}
どのように解決するのですか?
以下の記事をお読みください。 ストリーム を読んでみてください。
特に、並列処理に関する部分に注意してください。
明示的なforループによる要素の処理は、本質的にシリアルです。ストリームは、計算を個々の要素に対する命令的な操作としてではなく、集約的な操作のパイプラインとして捉え直すことで、並列実行を容易にします。すべてのストリーム操作は、シリアルまたはパラレルで実行できます。
要約すると、並列のfor-loopは存在せず、それらは本質的に直列です。しかし、ストリームはその仕事をすることができます。次のコードを見てください。
Set<Server> servers = getServers();
Map<String, String> serverData = new ConcurrentHashMap<>();
servers.parallelStream().forEach((server) -> {
serverData.put(server.getIdentifier(), server.fetchData());
});
関連
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
Junitのユニットテストはjava.lang.Testを報告します。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
強制型変換について
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
コンストラクタDate()が未定義である問題
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
Zipファイルの圧縮・解凍にantを使用する
-
ApiModel と @ApiModelProperty の使用法
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。