Как стать автором
Обновить

Комментарии 9

Пул потоков, читающих из очереди сообщений, как правило, сильно имеет маленьких размер

Полагаю, тут имелось ввиду что-то вроде: "Пул потоков, читающих из очереди сообщений, как правило имеет крайне маленький размер"

Спасибо, поправил

Можно еще посмотреть в сторону project reactor, конечно разработка весьма специфическая, но проблемы производительности при highload решает на ура, особенно когда активно используется связка kafka+redis+postgres

Да, project reactor это большая тема, и он действительно в чем-то лучше, но там много всего и стоит рассматривать в отдельных статье/статьях

С релиза Java 21 и легковесных потоков, пулы потоков превратились в ненужный устаревший инструмент.

Не нужно больше создавать и настраивать пулы потоков, нужно как написано в самом начале просто запускать поток

new Thread(() -> {})

Просто забудьте про пулы потоков и связанные с ними настройки, это уже устарело

На Java 21 переедут еще не скоро

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

поэтому project loom, использовать в продакшене надо с крайней осторожностью

фабрика для создания потоков (на практике никогда не пригождается)

Пока не понадобилось например thread's context class loader назначать или делать АОПом сквозную трассировку в высококонкурентной среде.

или элементарно дать нормальные и понятные имена потокам

Не очень понял, зачем так усложнять в примере с "Выполнение частых Scheduled задач". Почему просто не взять newSingleThreadScheduledExecutor?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации