package com.nisum.sampleCode; import com.nisum.subscribers.MagazineSubscriber; import com.nisum.subscribers.PrintSubscriber; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ExecutionException; import java.util.concurrent.SubmissionPublisher; @Slf4j public class Sample { public static void main(String[] args) throws InterruptedException, ExecutionException { SubmissionPublisher<Integer> feed=new SubmissionPublisher<>(); MagazineSubscriber<Integer> magazineSubscriber=new MagazineSubscriber<>(); PrintSubscriber<Integer> printSubscriber=new PrintSubscriber(); feed.subscribe(magazineSubscriber); feed.subscribe(printSubscriber); for (int i = 0; i < 10; i++) { log.info(Thread.currentThread().getName() + " Publishing = " + i); feed.submit(i); Thread.sleep(1000); } feed.close(); } }