Понимание параллельного потока и порядка коллектораJAVA

Программисты JAVA общаются здесь
Anonymous
Понимание параллельного потока и порядка коллектора

Сообщение Anonymous »

Я пытаюсь понять, почему происходит другое, когда я меняю с y.addAll(x) на x.addAll(y) в фрагменте кода ниже:

Код: Выделить всё

List result = List.of(1, 2)
.parallelStream()
.collect(
ArrayList::new,
(x, y) -> x.add(y),
(x, y) -> y.addAll(x)
);
System.out.println(result);
Я знаю, что когда я использую параллельный поток, одновременно выполняется более одного потока. имеет три параметра; первые два параметра я понимаю. Что касается третьего параметра, я знаю, что x, y являются подпотоками и являются ArrayList, но я не понимаю, почему результаты в каждом случае разные. Я ожидал, что они будут одинаковыми.

Подробнее здесь: https://stackoverflow.com/questions/788 ... ctor-order

Вернуться в «JAVA»