Online Java Compiler By
JavaTpoint.com
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadPoolExecutor; import java.lang.Thread; import java.util.logging.Level; import java.util.logging.Logger; public class ThreadPoolExecutorgetThreadFactoryExample2{ public static void main(String[] args) { Workk task1 = new Workk("t1"); Workk task2 = new Workk("t2"); System.out.println("Starting threads"); ThreadPoolExecutor tExecutor = (ThreadPoolExecutor) Executors.newCachedThreadPool(); System.out.println(" Maximum pool size: "+ tExecutor.getMaximumPoolSize()); System.out.println("get Thread Factory used :"+ tExecutor.getThreadFactory()); tExecutor.submit(task1); tExecutor.submit(task2); tExecutor.execute(task1); // start task1 tExecutor.execute(task2); // start task2 System.out.println("get Task count :"+ tExecutor.getTaskCount()); tExecutor.shutdown(); // shutdown worker threads System.out.println("Threads started, main ends\n"); } } class Workk implements Runnable { private final String threadName; public Workk(String threadName) { this.threadName = threadName; } @Override public void run() { for(int i=0 ; i<=10;i++) { if(i<5) { try { System.out.println("Thread sleeping for 1000 i=" +i); Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(Workk.class.getName()).log(Level.SEVERE, null, ex); } } else{ System.out.println(" now i > 5 :"); break; } } } }
Output