TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.37K subscribers
Post #7707 1.12K
Как обобрать дерево в несколько потоков?

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

Задача обхода деревьев далеко не нова, существуют два основных подхода: обход в ширину и глубину. В первом случае удобно применять рекурсивный алгоритм, а во втором — понадобится дополнительная коллекция, в которую будут складываться узлы дерева, но всё это в один поток, а я решил рассмотреть эту задачу в многопоточной интерпретации.


Читать: https://habr.com/ru/companies/sberbank/articles/921528/?utm_campaign=921528

@a_cup_of_java | Другие наши каналы
  • 😁 4
  • 👍 1
More from @a_cup_of_java
  1. Sep 30, 2026Как StructuredTaskScope в JDK 27 отменяет лишнюю работу при сбое Два независимых вызова к…
  2. Sep 30, 2026Как подтвердить взаимную блокировку по дампу потоков Java Если JVM перестала выполнять раб…
  3. Sep 29, 2026Spring Boot 4: настраиваем экспорт логов, метрик и трассировок через OpenTelemetry В Sprin…
  4. Sep 29, 2026DAGP 3.5.0 проверяет бинарную совместимость дубликатов классов в Gradle Если два JAR содер…
  5. Sep 29, 2026Как защитить REST API в Spring Boot от несовместимых изменений В Spring Boot обновление Ja…
  6. Sep 28, 2026JDK 26: когда автовекторизации JIT мало и нужен Vector API JIT превращает циклы Java в SIM…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →