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

Java 9 में SubmissionPublisher क्लास कैसे कार्यान्वित करें?

SubmissionPublisher अवलोकन

Java 9 से, हम चार कोर इंटरफेसेस पेश करके रिएक्टिव स्ट्रीम्स बना सकते हैं: Publisher, Subscriber, Subscription, Processor, और एक ठोस क्लास: SubmissionPublisher जो Publisher इंटरफेस को कार्यान्वित करता है। प्रत्येक इंटरफेस रिएक्टिव स्ट्रीम्स के सिद्धांतों से मेल खाते हुए एक अलग भूमिका निभाता है। हम SubmissionPublisher क्लास के submit() मेथड का उपयोग करके प्रत्येक सब्सक्राइबर को प्रदान किए गए आइटम को प्रकाशित कर सकते हैं।

सिंटैक्स

public class SubmissionPublisher<T> extends Object implements Flow.Publisher<T>, AutoCloseable

उदाहरण: एकाधिक सब्सक्राइबर्स के साथ

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

class MySubscriber<T> implements Subscriber<T> {
    private Subscription subscription;
    private String name;
    public MySubscriber(String name) { this.name = name; }
    @Override public void onComplete() { System.out.println(name + ": onComplete"); }
    @Override public void onError(Throwable t) { System.out.println(name + ": onError"); t.printStackTrace(); }
    @Override public void onNext(T msg) { System.out.println(name + ": " + msg.toString() + " received in onNext"); subscription.request(1); }
    @Override public void onSubscribe(Subscription subscription) { System.out.println(name + ": onSubscribe"); this.subscription = subscription; subscription.request(1); }
}

public class FlowTest {
    public static void main(String args[]) {
        SubmissionPublisher<String> publisher = new SubmissionPublisher<>();
        MySubscriber<String> subscriber = new MySubscriber<>("Mine");
        MySubscriber<String> subscriberYours = new MySubscriber<>("Yours");
        MySubscriber<String> subscriberHis = new MySubscriber<>("His");
        MySubscriber<String> subscriberHers = new MySubscriber<>("Her");
        publisher.subscribe(subscriber);
        publisher.subscribe(subscriberYours);
        publisher.subscribe(subscriberHis);
        publisher.subscribe(subscriberHers);
        publisher.submit("One");
        publisher.submit("Two");
        publisher.submit("Three");
        publisher.submit("Four");
        publisher.submit("Five");
        try { Thread.sleep(1000); } catch(InterruptedException e) { e.printStackTrace(); }
        publisher.close();
    }
}

आउटपुट (आंशिक)

Yours: onSubscribe
His: onSubscribe
Mine: onSubscribe
His: One received in onNext
Yours: One received in onNext
...
Yours: onComplete
His: onComplete
Mine: onComplete
Her: onComplete

SubmissionPublisher रिएक्टिव स्ट्रीम्स में एक मानक, सरल पब्लिशर कार्यान्वयन प्रदान करता है।

  1. Java में JPanel के paintComponent() विधि को कैसे लागू करें? Java में JPanel के paintComponent() विधि को कैसे लागू करें?

    एक JPanel एक हल्का कंटेनर है और यह Java में एक अदृश्य घटक है। JPanel का डिफ़ॉल्ट लेआउट FlowLayout है। JPanel बनने के बाद, अन्य घटकों को JPanel ऑब्जेक्ट में इसकी add() विधि को कॉल करके जोड़ा जा सकता है जो Container क्लास से विरासत में मिली है। paintComponent() यह विधि JPanel पर बैकग्राउंड कलर बनाने

  1. Java में JFrame के मैक्सिमाइज़ बटन को कैसे अक्षम करें? Java में JFrame के मैक्सिमाइज़ बटन को कैसे अक्षम करें?

    एक JFrame javax.swing पैकेज की एक क्लास है और यह java.awt.frame क्लास को विस्तारित कर सकती है। यह एक बॉर्डर और टाइटल बार के साथ एक टॉप-लेवल विंडो है। एक JFrame क्लास में कई विधियाँ हैं जिनका उपयोग इसे कस्टमाइज़ करने के लिए किया जा सकता है। JFrame का आकार सेट करने के बाद भी हम कोने पर कर्सर रखकर और

  1. Java में JToggleButton कैसे लागू करें Java में JToggleButton कैसे लागू करें

    JToggleButtonएक JToggleButton AbstractButton का एक्सटेंशन है और इसका उपयोग उन बटनों को दर्शाने के लिए किया जा सकता है जिन्हें ON और OFF किया जा सकता है।जब JToggleButton को पहली बार दबाया जाता है, तो यह दबा हुआ रहता है और इसे केवल दूसरी बार दबाने पर रिलीज़ किया जा सकता है।एक JToggleButton हर बार दबाए