Java Conf 2025

Дата

02.07.2025

Место проведения

Санкт-Петербург

Формат

Оффлайн + онлайн

Тема доклада

Оптимизация потоков в 2k25: почему у корутин получается лучше

О чём доклад?

К сожалению, дела с неблокирующими потоками в Java / Kotlin сообществе далеки от повсеместного применения. Команды предпочитают давно знакомый Spring Web на дореактивном стеке, а неблокирующий подход считают непонятной и ненужной игрушкой. Непонятной, потому что для того, чтобы написать реактивное приложение и не утонуть в бесконечных callback-ах, нужна немалая экспертиза, а ненужной, потому что не слишком нагруженные приложения отлично работают и так, а слишком нагруженные можно закидать железом.

И это несмотря на то, что обуздание реактива сулит немалые выгоды тем смельчакам, которые на это решатся.

И мы решились. Мы разобрали очевидные плюсы реактивного программирования и неочевидные минусы. Научились писать неблокирующий код как императивный. И залезли под капот корутинам с виртуальными потоками.

Что по теме?

Мы разобрали главный поинт доклада: пользоваться физическими потоками напрямую в 2k25 будет только варвар и еретик. И вот каков был план:

  1. Выяснили, как у аудитории дела с использованием неблокирующего стека. Дела, как оказалось, не очень.
  2. «Зачем мне реактивные потоки? Я подниму 10 000 потоков и справлюсь с нагрузкой»— разобрали, почему это дешёвый блеф. Прикинули расход ресурсов.
  3. Принципиальные отличия реактивных потоков от блокирующих. Посчитали ещё раз, прикинули пользу от реактива.
  4. Разобрали минусы реактива. Хм, может, уже и не нужен этот реактив?
  5. Вспомнили, что это физические потоки. А есть ещё виртуальные и корутины. Ну-ка, ну-ка…
  6. Ого, да тут интересно…
  7. Разошлись писать приложения на виртуалках и корутинах.

Материалы доклада

Конференция была внутренняя, поэтому видео нет и не будет. Но вы можете скачать презентацию в PDF.

Фото с мероприятия:

Другие выступления