Ну, реактивное программирование означает, что вы выполняете все связанные с IO задачи, такие как сетевые вызовы асинхронно. Например, ваше приложение вызывает внешний REST API или базу данных, вы можете выполнить этот вызов асинхронно. Если вы это сделаете, текущий поток не блокируется. Вы можете подавать множество запросов, просто создавая один или несколько потоков. Если вы следите за методом блокировки, вам нужно иметь один поток для обработки каждого запроса. Вы можете сослаться на мой пост в блоге с несколькими частями part one, part two и part three для получения дополнительной информации.
Помимо этого вы можете использовать обратные вызовы, чтобы сделать то же самое. Вы можете выполнять асинхронный вызов с помощью обратных вызовов. Но если вы это делаете, иногда вы можете оказаться в аддоне. Наличие одного обратного вызова внутри другого приводит к очень сложным кодам, которые очень трудно поддерживать. С другой стороны, RxJava дает вам возможность писать асинхронный код, который намного проще, удобнее и удобнее. Кроме того, RxJava предоставляет вам множество мощных операторов, таких как Map, Zip и т. Д., Что делает ваш код намного более простым, одновременно повышая производительность за счет параллельных исполнений различных задач, которые не зависят друг от друга.
RxJava не является другой реализацией Observer с множеством операторов, а дает вам хорошую обработку ошибок и механизмы повтора, которые действительно удобны.
Но я не проводил никаких проверок RxJava с императивным подходом к программированию, чтобы поблагодарить вас статистически. Но я уверен, что RxJava должен обеспечивать хорошую производительность по механизмам блокировки.