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

জাভা ৯-এ রিয়েক্টিভ স্ট্রিমের কোর ইন্টারফেসগুলো কী কী?

জাভা ৯-এ java.util.concurrent.Flow প্যাকেজের অধীনে রিয়েক্টিভ স্ট্রিম প্রবর্তিত হয়েছে যা একটি ইন্টারঅপারেবল পাবলিশ-সাবস্ক্রাইব ফ্রেমওয়ার্ক সাপোর্ট করে। এটি অ্যাসিনক্রোনাস বাউন্ডারি জুড়ে ডেটার অ্যাসিনক্রোনাস স্ট্রিম প্রসেস করে (এলিমেন্ট অন্য থ্রেড বা থ্রেড-পুলে পাস করে), এবং রিসিভিং সাইড বাধ্য নয় আर्बিট্রারি অ্যামাউন্ট ডেটা বাফার করতে, তাই বাফার ওভারফ্লো ঘটে না।

Flow API চারটি ইন্টাররিলেটেড কোর ইন্টারফেস ধারণ করে: Publisher, Subscriber, Subscription, এবং Processor।

সিনট্যাক্স

@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, Flow.Processor, Flow.Subscriber, এবং Flow.Subscription রিয়েক্টিভ স্ট্রিম স্পেসিফিকেশন সাথে সম্পর্কিত। Publisher ইন্টারফেসে subscribe() মেথড, Subscription-এ cancel() এবং request() মেথড এবং Subscriber-এ onSubscribe(), onNext(), onError(), এবং onComplete() মেথড রয়েছে। Processor ইন্টারফেস Flow.Publisher এবং Flow.Subscriber ইন্টারফেসের সব মেথড ইমপ্লিমেন্ট করে।

  1. জাভা ৯-এ try-with-resources-এর উন্নতি

  2. জাভাতে FocusListener ইন্টারফেসের গুরুত্ব

  3. জাভাতে MouseListener এবং MouseMotionListener-এর মধ্যে পার্থক্য কী?

  4. জাভাতে ক্লাসের বিভিন্ন প্রকার কী কী?