Java 8:并行FOR循环

我听说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循环,它们本质上是串行的。但是,流可以完成这项工作。看下面的代码:

    Set<Server> servers = getServers();

Map<String, String> serverData = new ConcurrentHashMap<>();

servers.parallelStream().forEach((server) -> {

serverData.put(server.getIdentifier(), server.fetchData());

});

以上是 Java 8:并行FOR循环 的全部内容, 来源链接: utcz.com/qa/406462.html

回到顶部