Vâng, Lập trình phản ứng có nghĩa là bạn đang làm tất cả các tác vụ bị ràng buộc IO của bạn, chẳng hạn như các cuộc gọi mạng không đồng bộ. Đối với một cá thể nói rằng ứng dụng của bạn gọi một API REST bên ngoài hoặc một cơ sở dữ liệu, bạn có thể thực hiện yêu cầu đó một cách không đồng bộ. Nếu bạn làm như vậy luồng hiện tại của bạn không chặn. Bạn có thể phục vụ rất nhiều yêu cầu bằng cách đơn thuần sinh ra một hoặc vài luồng. Nếu bạn làm theo phương pháp chặn, bạn cần phải có một luồng để xử lý từng yêu cầu. Bạn có thể tham khảo bài đăng trên blog đa phần của tôi part one, part two và part three để biết thêm chi tiết.
Khác với bạn có thể sử dụng gọi lại để thực hiện tương tự. Bạn có thể thực hiện lời gọi không đồng bộ bằng cách sử dụng gọi lại. Nhưng nếu bạn làm như vậy đôi khi bạn có thể kết thúc với địa ngục gọi lại. Có một callback bên trong khác dẫn đến các mã rất phức tạp mà rất khó để duy trì. Mặt khác, RxJava cho bạn viết mã không đồng bộ, đơn giản hơn nhiều, có thể tổng hợp và dễ đọc hơn. Ngoài ra RxJava cung cấp cho bạn rất nhiều toán tử mạnh mẽ như Bản đồ, Zip, vv làm cho mã của bạn đơn giản hơn nhiều trong khi tăng hiệu suất do thực thi song song các tác vụ khác nhau không phụ thuộc lẫn nhau.
RxJava không phải là một triển khai Observer khác với bộ toán tử thay vì nó cho phép bạn xử lý lỗi tốt và thử lại các cơ chế thực sự tiện dụng.
Nhưng tôi chưa thực hiện bất kỳ đánh dấu băng ghế dự bị nào của RxJava với phương pháp lập trình bắt buộc để khen bạn một cách thống kê. Nhưng tôi khá chắc chắn rằng RxJava sẽ mang lại hiệu suất tốt hơn so với các cơ chế chặn.
Nguồn
2017-02-06 07:45:32