Computer >> Máy Tính >  >> Lập trình >> Java

Các bước để thực thi API Flow trong Java 9 là gì?


API luồng trong Java 9 tương ứng với Luồng phản ứng đặc điểm kỹ thuật, là một tiêu chuẩn defacto. Nó chứa một tập hợp tối thiểu các giao diện nắm bắt được trọng tâm của việc xuất bản và đăng ký không đồng bộ.

Dưới đây là các giao diện chính của API luồng :

1) Dòng chảy. Nhà xuất bản: Nó tạo ra các mặt hàng để người đăng ký sử dụng và chỉ chứa phương thức: subscribe (Người đăng ký) , mục đích của ai phải rõ ràng.

Cú pháp

void subscribe(Flow.Subscriber<? super T> subscriber)

2) Dòng chảy. Người đăng ký: Nó đăng ký với các nhà xuất bản (thường chỉ một) để nhận các mặt hàng (thông qua phương thức onNext (T) ), thông báo lỗi ( onError (Throwable) ) hoặc một tín hiệu cho thấy không có thêm mục nào được mong đợi ( onComplete () ). Trước khi bất kỳ điều gì trong số đó xảy ra, nhà xuất bản gọi onSubscription (Đăng ký) phương pháp.

Cú pháp

void onSubscribe(Flow.Subscription subscription)
void onNext(T item)
void onError(Throwable throwable)
void onComplete()

3) Dòng chảy. Đăng ký: Kết nối giữa một nhà xuất bản và một người đăng ký . Người đăng ký có thể sử dụng nó để yêu cầu nhiều mặt hàng hơn ( yêu cầu (dài) ) hoặc ngắt kết nối ( hủy () ).

Cú pháp

void request(long n)
void cancel()

Các bước thực thi cho API luồng:


  • Trước tiên, chúng tôi cần tạo Nhà xuất bản và một Người đăng ký .
  • Đăng ký người đăng ký bằng Nhà xuất bản ::đăng ký .
  • Nhà xuất bản tạo Đăng ký và gọi Người đăng ký ::onSubscription với nó, vì vậy người đăng ký có thể lưu trữ đăng ký.
  • Tại một số thời điểm, người đăng ký gọi Đăng ký :: yêu cầu để yêu cầu một số mặt hàng.
  • Nhà xuất bản bắt đầu giao các mặt hàng cho người đăng ký bằng cách gọi Người đăng ký ::onNext . Nó không bao giờ xuất bản nhiều hơn số lượng mục được yêu cầu.
  • Tại một số điểm, nhà xuất bản có thể gặp rắc rối và gọi Người đăng ký ::onComplete hoặc Người đăng ký ::onError tương ứng.
  • Người đăng ký có thể tiếp tục yêu cầu nhiều mặt hàng hơn thỉnh thoảng hoặc cắt kết nối bằng cách gọi Đăng ký ::hủy .