У меня есть большой массив объектов, и я хочу собрать все объекты с определенным значением поля, и поскольку это такой большой массив, я планирую использовать fork/join в java.
большой массив разветвляется не путем создания новых подсписков, а путем передачи исходного списка, но с начальным/конечным диапазоном. Compute находит все объекты, соответствующие определенному предикату, и добавляет их в переданный в ConcurrentLinkedQueue. После объединения всех подзадач записываем ConcurrentLinkedQueue в хранилище.
Должен ли входной большой список быть синхронизированным списком? Я считаю, что не из-за того, что происходит начало потока - до правила, я думаю, что его состояние в начале выполнения fork/join будет видно любым задачам/потокам. Но я хотел подтвердить, что мое понимание правильное.