फ्लो API (java.util.concurrent.Flow) ने जावा 9 . में पेश किया है . यह विभिन्न तरीकों को समझने में मदद करता है जिसमें प्रकाशक और एस ग्राहक इंटरफेस वांछित संचालन करने के लिए बातचीत करते हैं।
फ्लो AP मेरे पास प्रकाशक, ग्राहक, सदस्यता, . शामिल हैं और प्रोसेसर इंटरफेस, जो प्रतिक्रियाशील धारा विनिर्देश पर आधारित हो सकते हैं।
नीचे दिए गए उदाहरण में, हम Publisher-Subscriber इंटरफेस का उपयोग करके Flow API को लागू कर सकते हैं।
उदाहरण
आयात करें { प्रकाशक<पूर्णांक> पब्लिशरसिंक =नया प्रकाशक<इंटीजर> () { // प्रकाशक बनाएं @ओवरराइड करें सार्वजनिक शून्य सदस्यता लें (सब्सक्राइबर सुपर इंटीजर> सब्सक्राइबर) { for(int i =0; i <10; i++) { System.out.println(Thread.currentThread().getName() + "| Publishing =" + i); ग्राहक।अगले पर (मैं); } सदस्य.पूर्ण होने पर (); } }; सदस्य<इंटीजर> subscriberSync =नया सब्सक्राइबर<इंटीजर> () { // सब्सक्राइबर बनाएं @ओवरराइड करें सार्वजनिक शून्य सदस्यता पर (सदस्यता सदस्यता) { } @ओवरराइड सार्वजनिक शून्य अगले पर (पूर्णांक आइटम) { System.out.println(Thread.currentThread().getName() + "|प्राप्त =" + आइटम); कोशिश करें {थ्रेड.स्लीप (100); } कैच (इंटरप्टेड एक्सेप्शन ई) { ई.प्रिंटस्टैकट्रेस (); } } @ओवरराइड सार्वजनिक शून्य त्रुटि पर (फेंकने योग्य) { } @ओवरराइड सार्वजनिक शून्य पूर्ण पर () { } }; पब्लिशरसिंक.सदस्यता लें (ग्राहक सिंक); }}आउटपुट
मुख्य | प्रकाशन =0 मुख्य | प्राप्त =0 मुख्य | प्रकाशन =1 मुख्य | प्राप्त =1 मुख्य | प्रकाशन =2 मुख्य | प्राप्त =2 मुख्य | प्रकाशन =3 मुख्य | प्राप्त =3 मुख्य | प्रकाशन =4 मुख्य | प्राप्त =4 मुख्य | प्रकाशन =5 मुख्य | प्राप्त =5 मुख्य | प्रकाशन =6 मुख्य | प्राप्त =6 मुख्य | प्रकाशन =7 मुख्य | प्राप्त =7 मुख्य | प्रकाशन =8 मुख्य | प्राप्त =8 मुख्य | प्रकाशन =9 मुख्य | प्राप्त =9