Parallelstream vorzeitig beenden

T_T

Bekanntes Mitglied
Hallo,
gibt es eine Möglichkeit, einen parallelStream nach erreichen eines limits vorzeitig abzubrechen?

Java:
final ArrayList<String> list = Lists.newArrayList("a", "b", "c", "d", "e");
        final List<String> resultList = list.parallelStream()
                .map(s -> {
                    try {
                        Thread.sleep(5000);
                        return s;
                    } catch (InterruptedException e) {
                        return null;
                    }
                })
                .peek(System.err::println)
                .filter(Objects::nonNull)
                .limit(2)
                .collect(Collectors.toList());
In diesem Beispiel geht er durch alle 5 Elemente durch und limitiert dann bei 2.
Im konkreten Fall geht es um eine Liste an imageUrls. Ich habe eine Liste an 'n' Urls, bei denen nicht sichergestellt ist, das diese zum Zeitpunkt des downloads existieren. Ich möchte bei 'm' erfolgreichen downloads, den parallelStream abbrechen.

Kennt jemand eine vernünftige Lösung?

Lg
T_T
 

Zurück
Oben