Java 9 ने प्रतिक्रियाशील धाराएं पेश की हैं के अंतर्गत java.util.concurrent.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> { }
ये चार इंटरफेस:Flow.Publisher , प्रवाह.प्रोसेसो आर, फ्लो.सब्सक्राइबर, और <मजबूत> प्रवाह। सदस्यता प्रतिक्रियाशील धारा विनिर्देशों से संबंधित। प्रकाशक इंटरफ़ेस में सदस्यता लें () है विधि, सदस्यता रद्द करें () . है और अनुरोध () तरीके और सदस्य ऑनसब्सक्राइब () . है , अगले पर () , ऑन एरर () , और पूर्ण पर() तरीके। प्रोसेसर इंटरफ़ेस प्रवाह के सभी तरीकों को लागू करता है। प्रकाशक और प्रवाह.सब्सक्राइबर इंटरफेस।