रिएक्टिव स्ट्रीम्स अवलोकन
Java 9 ने java.util.concurrent.Flow पैकेज के तहत रिएक्टिव स्ट्रीम्स पेश किया जो एक इंटरऑपरेबल पब्लिश-सब्सक्राइब फ्रेमवर्क का समर्थन करता है। यह डेटा की एक असिंक्रोनस स्ट्रीम को असिंक्रोनस बाउंड्री के पार प्रोसेस करता है (एलिमेंट्स को दूसरे थ्रेड या थ्रेड-पूल में पास करना), और प्राप्त करने वाला पक्ष मनमाने मात्रा में डेटा बफर करने के लिए मजबूर नहीं होता, फिर बफर ओवरफ्लो नहीं हो सकता।
Flow API के चार कोर इंटरफेसेस
@FunctionalInterface
public static interface Publisher<T> {
public void subscribe(Subscriber<? super T> subscriber);
}
public static interface Subscriber<T> {
public void onSubscribe(Subscription subscription);
public void onNext(T item);
public void onError(Throwable throwable);
public void onComplete();
}
public static interface Subscription {
public void request(long n);
public void cancel();
}
public static interface Processor<T, R> extends Subscriber<T>, Publisher<R> { }
मेथड्स सारांश
- Publisher: subscribe() मेथड
- Subscription: cancel() और request() मेथड्स
- Subscriber: onSubscribe(), onNext(), onError(), onComplete() मेथड्स
- Processor: Flow.Publisher और Flow.Subscriber इंटरफेसेस के सभी मेथड्स कार्यान्वित करता है
ये चार इंटरफेसेस Java में रिएक्टिव प्रोग्रामिंग के लिए मानक आधार बनाते हैं।