Как обобрать дерево в несколько потоков?

Всем привет, меня зовут Антон, я Java‑разработчик в Сбере, подразделение SberWorks. Я разрабатываю Giga IDE — новую IDE на основе IntelliJ IDEA. В ходе работы столкнулся с тем, что при открытии проектов происходит сканирование всех папок для поиска тех или иных файлов. Если обобщить, то задача сводится к обходу дерева. Я решил подробнее рассмотреть эту тему, причём с прицелом на многопоточность. Задача обхода деревьев далеко не нова, существуют два основных подхода: обход в ширину и глубину. В первом случае удобно применять рекурсивный алгоритм, а во втором — понадобится дополнительная коллекция, в которую будут складываться узлы дерева, но всё это в один поток, а я решил рассмотреть эту задачу в многопоточной интерпретации.

https://habr.com/ru/companies/sberbank/articles/921528/

#java #обход_дерева #multithreading #forkjoinpool #forkjointask #performance #производительность

Как обобрать дерево в несколько потоков?

Всем привет, меня зовут Антон, я Java‑разработчик в Сбере, подразделение SberWorks. Я разрабатываю Giga IDE — новую IDE на основе IntelliJ IDEA. В ходе работы столкнулся...

Хабр

Польза создания однородных задач для параллельного вычисления

Как правильно использовать возможности параллельного программирования? Зачем программистам математика и зачем знать алгоритмы? На примере небольшой задачи мы вместе ответим на эти вопросы. А так же хочу наглядно продемонстрировать преимущества создания однородных задач. Весь код из статьи находится здесь .

https://habr.com/ru/articles/779188/

#математика #алгоритмы #forkjoinpool #forkjoin #forkjointask #java

Польза создания однородных задач для параллельного вычисления

Как правильно использовать возможности параллельного программирования? Зачем программистам математика и зачем знать алгоритмы? Представьте что у вас есть 10 задач. Каждая пронумерована от 1 до 10, а...

Хабр