#forkjointask

2025-06-25

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

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

habr.com/ru/companies/sberbank

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

2023-12-07

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

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

habr.com/ru/articles/779188/

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

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst