> Java > java지도 시간 > Java 9에서 Flow API를 사용하여 반응형 스트리밍을 구현하는 방법은 무엇입니까?

Java 9에서 Flow API를 사용하여 반응형 스트리밍을 구현하는 방법은 무엇입니까?

王林
풀어 주다: 2023-09-19 23:49:02
앞으로
825명이 탐색했습니다.

如何在Java 9中使用Flow API实现响应式流?

Flow API는 Java 9부터 반응 흐름 사양에 대한 공식 지원입니다. Iterator 패턴과 Observer 패턴의 조합입니다. Flow APIRxJava와 같은 최종 사용자 API가 아닌 상호 운용성 사양입니다.

Flow API는 네 가지 기본 인터페이스로 구성됩니다.

  • Subscriber: Subscriber는 게시자에 대한 콜백을 구독합니다.
  • Publisher: Publisher는 등록된 구독자에게 데이터 항목 스트림을 게시합니다.
  • 구독: 게시자와 구독자 간의 링크입니다.
  • 프로세서: 프로세서는 게시자와 구독자 사이에 위치하여 한 스트림을 다른 스트림으로 변환합니다.

아래 예에서는 데이터 개체를 요청하고 인쇄한 다음 다른 데이터 개체를 요청하는 기본 구독자를 만듭니다. Java(SubmissionPublisher)에서 제공하는 게시자 구현을 사용하여 세션을 완료할 수 있습니다.

import java.util.concurrent.Flow;
import java.util.List;
import java.util.concurrent.SubmissionPublisher;

class MySubscriber<T>implements <strong>Flow.Subscriber<T></strong> {
   private <strong>Flow.Subscription</strong> subscription;
   <strong>@Override</strong>
   public void <strong>onSubscribe</strong>(Flow.Subscription subscription) {
      this.subscription = subscription;
      this.subscription.request(1);
   }
   <strong>@Override</strong>
   public void <strong>onNext</strong>(T item) {
      System.out.println(item);
      subscription.request(1);
   }
   <strong>@Override</strong>
   public void <strong>onError</strong>(Throwable throwable) {
      throwable.printStackTrace();
   }
   <strong>@Override</strong>
   public void <strong>onComplete</strong>() {
      System.out.println("Done");
   }
}

<strong>// main class</strong>
public class FlowTest {
   public static void main(String args[]) {
      <strong>List<String></strong> items = <strong>List.of</strong>("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
      <strong>SubmissionPublisher<String></strong> publisher = new SubmissionPublisher<>();
      publisher.<strong>subscribe</strong>(new MySubscriber<>());
      items.forEach(s -> {
         try {
            Thread.sleep(1000);
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
         publisher.<strong>submit</strong>(s);
      });
      publisher.close();
   }
}
로그인 후 복사

출력

<strong>1
2
3
4
5
6
7
8
9</strong>
<strong>10
Done</strong>
로그인 후 복사

위 내용은 Java 9에서 Flow API를 사용하여 반응형 스트리밍을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿