
Java Conf 2025
Дата
02.07.2025
Место проведения
Санкт-Петербург
Формат
Оффлайн + онлайн
Тема доклада
Оптимизация потоков в 2k25: почему у корутин получается лучше
О чём доклад?
К сожалению, дела с неблокирующими потоками в Java / Kotlin сообществе далеки от повсеместного применения. Команды предпочитают давно знакомый Spring Web на дореактивном стеке, а неблокирующий подход считают непонятной и ненужной игрушкой. Непонятной, потому что для того, чтобы написать реактивное приложение и не утонуть в бесконечных callback-ах, нужна немалая экспертиза, а ненужной, потому что не слишком нагруженные приложения отлично работают и так, а слишком нагруженные можно закидать железом.
И это несмотря на то, что обуздание реактива сулит немалые выгоды тем смельчакам, которые на это решатся.
И мы решились. Мы разобрали очевидные плюсы реактивного программирования и неочевидные минусы. Научились писать неблокирующий код как императивный. И залезли под капот корутинам с виртуальными потоками.
Что по теме?
Мы разобрали главный поинт доклада: пользоваться физическими потоками напрямую в 2k25 будет только варвар и еретик. И вот каков был план:
- Выяснили, как у аудитории дела с использованием неблокирующего стека. Дела, как оказалось, не очень.
- «Зачем мне реактивные потоки? Я подниму 10 000 потоков и справлюсь с нагрузкой»— разобрали, почему это дешёвый блеф. Прикинули расход ресурсов.
- Принципиальные отличия реактивных потоков от блокирующих. Посчитали ещё раз, прикинули пользу от реактива.
- Разобрали минусы реактива. Хм, может, уже и не нужен этот реактив?
- Вспомнили, что это физические потоки. А есть ещё виртуальные и корутины. Ну-ка, ну-ка…
- Ого, да тут интересно…
- Разошлись писать приложения на виртуалках и корутинах.
Материалы доклада
Конференция была внутренняя, поэтому видео нет и не будет. Но вы можете скачать презентацию в PDF.
































