Java 9는 반응형 스트림을 도입했습니다. java.util.concurrent.Flow 아래 상호 운용 가능한 게시-구독을 지원하는 패키지 뼈대. 비동기 경계를 넘어 비동기 데이터 스트림을 처리하고(요소를 다른 스레드 또는 스레드 풀로 전달) 수신 측이 임의의 양의 데이터를 버퍼링하도록 강제되지 않으므로 버퍼 오버플로가 발생할 수 없습니다.
흐름 API 4개의 상호 관련된 핵심 인터페이스를 포함합니다. 게시자 , 구독자 , 구독 및 프로세서 .
구문
@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> { }
다음 4가지 인터페이스:Flow.Publisher , Flow.Processo r, Flow.Subscriber, 그리고흐름. 구독 반응 스트림 사양과 관련이 있습니다. 게시자 인터페이스에 subscribe()가 있습니다. 방법, 구독 취소() 있음 및 요청() 방법 및 구독자 onSubscribe() 있음 , onNext() , onError() 및 onComplete() 행동 양식. 프로세서 인터페이스는 Flow의 모든 메소드를 구현합니다. 게시자 및 Flow.Subscriber 인터페이스.