One ThreadPool VS.много ThreadPools в весеннем загрузочном (веб) проекте Java - PullRequest
0 голосов
/ 21 ноября 2018

У меня и моих товарищей по команде был аргумент «Дизайн», касающийся того, на каком уровне проект должен управлять количеством потоков на модуль?или за проект?Другой?мы хотели бы услышать больше мнений по этому вопросу (подумайте о поддержании кода, о хорошем коде, о рисках, таких как будущий тупик, голод и т. д.).

для целей обсуждения, которое мыдобавили нашу собственную мысль о плюсах и минусах каждого подхода.

Один подход ThreadPool - все модули в проекте будут внедрены с одноэлементным компонентом пула потоков (который будет иметь жесткую границуиз максимального потока, который понадобится службе).он будет расположен в общем модуле (см. структуру ниже).

Преимущества: -хороший контроль над потреблением потока; -снижение количества кода (компонент будет удален один раз).Недостатки: -не SOLID, каждый раз, когда одному модулю нужен поток, ему нужно перейти к другому модулю (общий) и изменить код.- Зависит от реализации пула потоков, может вызвать голодание.-deadlock / недостаточно потоков для продолжения работы, если одна задача зависит от другой И кто-то забыл добавить потоки.

(мой любимый) Per Need ThreadPool подход - все модули будут нести ответственность за количество потребляемого потока, более конкретно, в файле @Configuration каждого модуля, который вы можете увидеть, один или несколько bean-компонентов threadPool зависят от необходимости \ типа задачи.

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

Disatvategs: - без контроля уровня обслуживания.-много и разрозненное создание Бобов потоков по всему проекту.

Предполагается, что проект выглядит как структура ниже, а модуль зависит друг от друга относительно чисел (модуль-1 использует модуль-2, который использует модуль 3 ии так далее): * модуль 1 является исполняемым.

проект:

-комодуль-модуль
-модуль-1
-модуль-2
-модуль-3
-модуль-4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...