Определение первого элемента в параллельном потоке - PullRequest
0 голосов
/ 29 октября 2018

Как определяется первый элемент, когда операция findFirst используется в параллельном потоке?

EDIT

  1. @ nullpointer: Моя цель вопроса отличается от того, что вы опубликовали в качестве возможного дубликата (где элемент выполняет работу, поэтому в игру вступает много факторов) и вашей второй ссылки (вопрос ) не говорит о параллелизме.

  2. ALL: Разъяснение исходного вопроса, который я признаю, должно было предоставить больше информации - учитывая ArrayList строк (скажем, миллион слов в качестве элементов) и попытаться найти первый элемент, используя findFirst, Как определяется первый элемент (скажем, слово поиска «HelloWorld») при параллельном (Stream.parallelStream()) выполнении? Я поднимаю этот вопрос, потому что, когда список упорядочен (в этом случае первое столкновение в порядке возвращается с помощью findFirst), рассматривается ли параллельное выполнение даже на первом месте? Если это так, искомое слово может быть где угодно и любым количеством экземпляров в миллионе слов / элементов, а список можно разделить на множество параллельных подзадач, в этом случае, как определяется первый элемент?

1 Ответ

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

Параллельно мы можем легко распараллелить вышестоящие операции, но когда какой-либо подзадачей будет получен результат, мы не закончим. Нам все еще нужно дождаться завершения всех подзадач, которые приходят ранее в заказе на столкновение. Так что findFitst если не параллельное дружественное.

...