Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा 9 में फ्लो एपीआई का उपयोग करके प्रतिक्रियाशील धाराओं को कैसे कार्यान्वित करें?


फ्लो API जावा 9 के बाद से प्रतिक्रियाशील स्ट्रीम विनिर्देश के लिए आधिकारिक समर्थन है। यह Iterator दोनों का संयोजन है और पर्यवेक्षक पैटर्न। फ्लो एपीआई एक इंटरऑपरेशन विनिर्देश है और RxJava . की तरह एंड-यूज़र API नहीं है ।

फ्लो API चार बुनियादी इंटरफेस के होते हैं:

  • सदस्य : सब्सक्राइबर कॉलबैक के लिए प्रकाशक की सदस्यता लेता है।
  • प्रकाशक : प्रकाशक पंजीकृत ग्राहकों को डेटा आइटम की धारा प्रकाशित करता है।
  • सदस्यता : प्रकाशक और ग्राहक के बीच की कड़ी।
  • प्रोसेसर : प्रोसेसर प्रकाशक और सब्सक्राइबर के बीच बैठता है, और एक स्ट्रीम को दूसरी स्ट्रीम में बदल देता है।

नीचे दिए गए उदाहरण में, हमने एक बुनियादी ग्राहक बनाया है जो एक डेटा ऑब्जेक्ट मांगता है, उसे प्रिंट करता है और एक और मांगता है। हम जावा द्वारा प्रदान किए गए प्रकाशक कार्यान्वयन का उपयोग कर सकते हैं (सबमिशन प्रकाशक ) हमारा सत्र पूरा करने के लिए।

उदाहरण

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

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

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

आउटपुट

1
2
3
4
5
6
7
8
9
10
Done

  1. जावा का उपयोग करके ओपनसीवी में गाऊसी कलंक को कैसे कार्यान्वित करें?

    आप कम-पास वाले फ़िल्टर का उपयोग करके किसी छवि को फ़िल्टर करके उसे धुंधला कर सकते हैं, यह एक छवि से उच्च आवृत्ति सामग्री (शोर, किनारों) को हटा देता है। गॉसियन ब्लरिंग ओपनसीवी द्वारा प्रदान की जाने वाली धुंधली तकनीकों में से एक है, यह एक छवि के शोर को दूर करने में अत्यधिक कुशल है। यह केंद्रीय तत्व को

  1. जावा का उपयोग करके ओपनसीवी में ब्लर (औसत) कैसे कार्यान्वित करें?

    आप कम-पास वाले फ़िल्टर का उपयोग करके किसी छवि को फ़िल्टर करके उसे धुंधला कर सकते हैं, यह एक छवि से उच्च आवृत्ति सामग्री (शोर, किनारों) को हटा देता है। औसत, OpenCV द्वारा प्रदान की गई धुंधली तकनीकों में से एक है, यह केंद्रीय तत्व को कर्नेल क्षेत्र में सभी पिक्सेल के औसत से बदल देता है आप धुंधला ()

  1. जावा में JWindow का उपयोग करके हम स्प्लैश स्क्रीन को कैसे कार्यान्वित कर सकते हैं?

    एक जेविंडो एक कंटेनर है जिसे उपयोगकर्ता डेस्कटॉप पर कहीं भी प्रदर्शित किया जा सकता है। इसमें टाइटल बार . नहीं है , विंडो प्रबंधन बटन, आदि एक JFrame की तरह। जेविंडो इसमें एक JRootPane . है अपने एकमात्र बाल वर्ग के रूप में। सामग्री फलक JWindow . के किसी भी बच्चे का अभिभावक हो सकता है . एक JFra