Понимание параллельного потока и порядка коллектора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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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