1、固定大小的线程池子
代码如下:
public class ThreadExtend_Pool extends Thread {
@Override
public void run(){
System.out.println(Thread.currentThread().getName()+"正在执行......");
}
public static void main(String args[]){
//创建一个可重用的固定线程池数的线程池
ExecutorService executorService= Executors.newFixedThreadPool(2);
Thread thread1=new ThreadExtend_Pool();
Thread thread2=new ThreadExtend_Pool();
Thread thread3=new ThreadExtend_Pool();
Thread thread4=new ThreadExtend_Pool();
Thread thread5=new ThreadExtend_Pool();
//将线程放入线程池当中进行执行
executorService.execute(thread1);
executorService.execute(thread2);
executorService.execute(thread3);
executorService.execute(thread4);
executorService.execute(thread5);
//关闭线程池子
executorService.shutdown();
}
}
结果如下:
pool-1-thread-2正在执行......
pool-1-thread-1正在执行......
pool-1-thread-2正在执行......
pool-1-thread-2正在执行......
pool-1-thread-1正在执行......
2、单任务线程池
public class ThreadExtend_Pool extends Thread {
@Override
public void run(){
System.out.println(Thread.currentThread().getName()+"正在执行......");
}
public static void main(String args[]){
//创建单个Worker线程的Executor,
ExecutorService executorService= Executors.newSingleThreadExecutor();
Thread thread1=new ThreadExtend_Pool();
Thread thread2=new ThreadExtend_Pool();
Thread thread3=new ThreadExtend_Pool();
Thread thread4=new ThreadExtend_Pool();
Thread thread5=new ThreadExtend_Pool();
//将线程放入线程池当中进行执行
executorService.execute(thread1);
executorService.execute(thread2);
executorService.execute(thread3);
executorService.execute(thread4);
executorService.execute(thread5);
//关闭线程池子
executorService.shutdown();
}
}
结果如下:
pool-1-thread-1正在执行......
pool-1-thread-1正在执行......
pool-1-thread-1正在执行......
pool-1-thread-1正在执行......
pool-1-thread-1正在执行......