Java 9 đã giới thiệu Luồng phản ứng trong java.util.concurrent.Flow gói hỗ trợ xuất bản-đăng ký có thể tương tác khuôn khổ. Nó xử lý một luồng dữ liệu không đồng bộ qua ranh giới không đồng bộ (chuyển các phần tử vào một luồng hoặc nhóm luồng khác) và phía nhận không bị buộc phải đệm số lượng dữ liệu tùy ý, khi đó không thể xảy ra tràn bộ đệm.
API luồng chứa bốn giao diện cốt lõi có liên quan với nhau: Nhà xuất bản , Người đăng ký , Đăng ký và Bộ xử lý .
Cú pháp
@FunctionalInterface public static interface Publisher<T> { public void subscribe(Subscriber<? super T> subscriber) } public static interface Subscriber<T> { public void onSubscribe(Subscription subscription); public void onNext(T item); public void onError(Throwable throwable); public void onComplete(); } public static interface Subscription { public void request(long n); public void cancel(); } public static interface Processor<T, R> extends Subscriber<T>, Publisher<R> { }
Bốn giao diện sau: Flow.Publisher , Flow.Processo r, Flow.Subscriber, và Dòng chảy. Đăng ký liên quan đến thông số kỹ thuật của luồng phản ứng. Nhà xuất bản giao diện có subscribe () phương pháp, Đăng ký đã hủy () và request () và Người đăng ký có onSubscribe () , onNext () , onError () và onComplete () các phương pháp. Bộ xử lý giao diện thực hiện tất cả các phương pháp của Dòng chảy. Nhà xuất bản và Flow.Subscriber giao diện.