Java 8: Параллель ДЛЯ цикла

Я услышал, что Java 8 обеспечивает много утилит относительно параллельных вычислений. Поэтому я задаюсь вопросом, что самый простой путь состоит в том, чтобы параллелизировать данный для цикла?

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);
    }
}
60
задан 19 December 2014 в 13:49

1 ответ

Простой пример к copy'n'paste (примеры выше используют класс Server, который является пользовательским классом, записанным OP):

import java.io.Console;
import java.util.ArrayList;

ArrayList<String> list = new ArrayList<>();
list.add("Item1");
list.add("Item2");
list.parallelStream().forEach((o) -> {
    System.out.print(o);
});

Консоль производится. Порядок мог возможно варьироваться, поскольку все выполняется параллельно:

Item1
Item2

.parallelStream() метод был представлен в Java v8. Этот пример был протестирован с JDK v1.8.0_181.

1
ответ дан 1 November 2019 в 10:25

Другие вопросы по тегам:

Похожие вопросы: