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

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

王林
王林앞으로
2023-09-19 23:49:02744검색

如何在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으로 문의하시기 바랍니다. 삭제