Как вызвать функцию в синхронизации и параллельно, которая возвращает строку? - PullRequest
0 голосов
/ 24 октября 2018

Мне нужно вызвать функцию, которая возвращает строку.Пользовательский интерфейс предоставляет список идентификаторов, для которых мне нужно будет вызвать функцию, которая создает файл и возвращает имя файла.В настоящее время я вызываю функцию итеративным способом.После завершения каждой итерации я помещаю имя файла в ArrayList, который я буду использовать позже.

Как я могу вызвать функцию параллельно, а затем добавить каждый результат в список массивов и дождаться завершения всех потоков, прежде чем делать другой кусок кода?

Вот пример кода, который у меня есть.

List<String> fileNames=new ArrayList<>();

for (Object ob : objectList){
    String filename = createFilename(ob);
    fileNames.add(filename);
}

1 Ответ

0 голосов
/ 24 октября 2018

Если вы используете Java 8+, это идеальный вариант использования для потоков:

List<String> fileNames = objectList.parallelStream()
        .map(ob -> createFilename(ob))
        .collect(Collectors.toList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...