1、线程池说明
newCachedThreadPool创建缓存线程池,如果线程池的长度超过处理需要,则可以灵活回收空闲线程,如果不能回收,则可以创建新的线程。
newFixedThreadPool创建一个定长的线程池,可以控制线程的并发数,超过的线程在队列中等待。
newScheduledThreadPool建立固定长线程池,支持定时和周期任务的执行。
newSingleThreadExecutor创建一个单线程化的线程池,只能用唯一的工作线程执行任务,保证所有任务按指定顺序执行。
2、实例
class ThreadDemo extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getName() + "正在执行"); } } class TestFixedThreadPool { public static void main(String[] args) { //创建一个可重用固定线程数的线程池 ExecutorService pool = Executors.newFixedThreadPool(2); //创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口 Thread t1 = new ThreadDemo(); Thread t2 = new ThreadDemo(); Thread t3 = new ThreadDemo(); Thread t4 = new ThreadDemo(); Thread t5 = new ThreadDemo(); //将线程放入池中进行执行 pool.execute(t1); pool.execute(t2); pool.execute(t3); pool.execute(t4); pool.execute(t5); //关闭线程池 pool.shutdown(); } }
以上就是Java Executors中的四种线程池,希望对大家有所帮助。更多Java学习指路:Java基础