Heim > Java > javaLernprogramm > Wie können wir die Flow-API mithilfe des Publish-Subscribe-Musters in Java 9 implementieren?

Wie können wir die Flow-API mithilfe des Publish-Subscribe-Musters in Java 9 implementieren?

WBOY
Freigeben: 2023-08-25 19:45:02
nach vorne
1054 Leute haben es durchsucht

我们如何在Java 9中使用发布-订阅模式来实现Flow API呢?

Flow API (java.util.concurrent.Flow) wurde in Java 9 eingeführt. Es hilft zu verstehen, wie die Schnittstellen Publisher und SSubscriber interagieren, um die gewünschten Aktionen auszuführen.

Flow API besteht aus Herausgeber-, Abonnenten-, Abonnement- und Prozessor-Schnittstellen, die auf reaktiven Flussspezifikationen basieren können. Im folgenden Beispiel können wir die Flow-API mithilfe der Publisher-Subscriber-Schnittstelle implementieren.

Beispiel

import java.util.concurrent.Flow.Publisher;
import java.util.concurrent.Flow.Subscriber;
import java.util.concurrent.Flow.Subscription;

public class FlowAPITest {
   public static void main(String args[]) {
      <strong>Publisher<Integer></strong> publisherSync = new <strong>Publisher<Integer></strong>() {   <strong>// Create publisher</strong>
         <strong>@Override</strong>
         public void <strong>subscribe</strong>(Subscriber<? super Integer><!--? super Integer--> subscriber) {
            for(int i = 0; i < 10; i++) {
               System.out.println(Thread.currentThread().getName() + " | Publishing = " + i);
               subscriber.<strong>onNext</strong>(i);
            }
            subscriber.<strong>onComplete</strong>();
         }
      };
      <strong>Subscriber<Integer></strong> subscriberSync = new <strong>Subscriber<Integer></strong>() {   <strong>// Create subscriber</strong>
         <strong>@Override</strong>
         public void <strong>onSubscribe</strong>(Subscription subscription) {
         }
         <strong>@Override</strong>
         public void <strong>onNext</strong>(Integer item) {
            System.out.println(Thread.currentThread().getName() + " | Received = " + item);
            try {
               Thread.sleep(100);
            } catch(InterruptedException e) {
               e.printStackTrace();
            }
         }
         <strong>@Override</strong>
         public void <strong>onError</strong>(Throwable throwable) {
         }
         <strong>@Override</strong>
         public void <strong>onComplete()</strong> {
         }
      };
      publisherSync.<strong>subscribe</strong>(subscriberSync);
   }
}
Nach dem Login kopieren

Ausgabe

<strong>main | Publishing = 0
main | Received = 0
main | Publishing = 1
main | Received = 1
main | Publishing = 2
main | Received = 2
main | Publishing = 3
main | Received = 3
main | Publishing = 4
main | Received = 4
main | Publishing = 5
main | Received = 5
main | Publishing = 6
main | Received = 6
main | Publishing = 7
main | Received = 7
main | Publishing = 8
main | Received = 8
main | Publishing = 9
main | Received = 9</strong>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie können wir die Flow-API mithilfe des Publish-Subscribe-Musters in Java 9 implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage