Реактивное программирование (Reactive Programming) в Java - это подход к разработке программного обеспечения, который позволяет создавать асинхронные, событийно-ориентированные приложения. Он основан на использовании реактивных потоков данных, которые позволяют эффективно обрабатывать асинхронные события и управлять потоками данных. В реактивном программировании используется набор понятий и инструментов, таких как наблюдатели (Observers), потоки данных (Streams), операторы (Operators) и подписки (Subscriptions)...
Источник: Nuances of Programming Асинхронный ввод/вывод уже какое-то время используется в обиходе. При этом разные языки реализуют его по-разному, но все предоставляют способ уменьшить количество потоков, давая вроде бы полную конкурентность. JavaScript занимался этим с самого начала. При использовании всего одного потока будет мало хорошего, отправь вы в продакшн блокирующий вызов. Несмотря на то, что реактивный Java все больше привлекает интерес разработчиков, большинство знакомых мне программистов по-прежнему живут в многопоточной парадигме...