কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ Publisher-Subscriber ব্যবহার করে Flow API ইমপ্লিমেন্ট করা

Flow API ইমপ্লিমেন্টেশন

Flow API (java.util.concurrent.Flow) জাভা ৯-এ যোগ করা হয়েছে। এটি Publisher এবং Subscriber ইন্টারফেসের পারস্পরিক קרিয়া বোঝার সাহায্য করে।

Flow API হলো Publisher, Subscriber, Subscription, এবং Processor ইন্টারফেসের সমষ্টি, যা রিয়েক্টিভ স্ট্রিম স্পেসিফিকেশনের উপর ভিত্তি করে তৈরি।

উদাহরণ: Publisher-Subscriber দিয়ে Flow API ইমপ্লিমেন্টেশন

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

public class FlowAPITest { 
    public static void main(String args[]) { 
        Publisher<Integer> publisherSync = new Publisher<Integer>() { 
            // Create publisher 
            @Override 
            public void subscribe(Subscriber<? super Integer> subscriber) { 
                for(int i = 0; i < 10; i++) { 
                    System.out.println(Thread.currentThread().getName() + " | Publishing = " + i); 
                    subscriber.onNext(i); 
                } 
                subscriber.onComplete(); 
            } 
        }; 

        Subscriber<Integer> subscriberSync = new Subscriber<Integer>() { 
            // Create subscriber 
            @Override 
            public void onSubscribe(Subscription subscription) { 
            } 
            @Override 
            public void onNext(Integer item) { 
                System.out.println(Thread.currentThread().getName() + " | Received = " + item); 
                try { 
                    Thread.sleep(100); 
                } catch(InterruptedException e) { 
                    e.printStackTrace(); 
                } 
            } 
            @Override 
            public void onError(Throwable throwable) { 
            } 
            @Override 
            public void onComplete() { 
            } 
        }; 
        publisherSync.subscribe(subscriberSync); 
    } 
}

আউটপুট

main | Publishing = 0 main | Received = 0 main | Publishing = 1 main | Received = 1 main | Publishing = 2 main | Received = 2 main | Publishing = 3 main | Received = 3 main | Publishing = 4 main | Received = 4 main | Publishing = 5 main | Received = 5 main | Publishing = 6 main | Received = 6 main | Publishing = 7 main | Received = 7 main | Publishing = 8 main | Received = 8 main | Publishing = 9 main | Received = 9
  1. জাভাতে JPopupMenu ব্যবহার করে রাইট ক্লিক মেনু কীভাবে বাস্তবায়ন করবেন?

  2. জাভাতে BorderFactory ব্যবহার করে ভিন্ন ধরনের বর্ডার কীভাবে বাস্তবায়ন করবেন?

  3. জাভাতে JToggleButton কীভাবে বাস্তবায়ন করবেন?

  4. জাভাতে JWindow ব্যবহার করে স্প্ল্যাশ স্ক্রিন কীভাবে বাস্তবায়ন করবেন?