Java多线程(四):使用Executors创建线程池及其注意事项

文章目录

  • 1. 简介
  • 2. newCachedThreadPool
  • 3. newFiexedThreadPool
  • 4. newSingleThreadExecutor
  • 5. newScheduledThreadPool
  • 6. 注意事项(必看)

1. 简介

Executors 也是创建线程池的工具,通过Executors 可以简单地创建线程池对象。主要包括以下4种创建方式:

  • newCachedThreadPool:创建一个可缓存的线程池。每个创建的线程默认偶60秒空闲时间,前面创建的线程只要还没被回收,并且处于空闲状态下,就可以直接重用;否则会直接创建新的线程,总线程数没有上限

  • newFiexedThreadPool:创建一个固定数目的线程池。当任务超过可处理线程时,会放入阻塞队列等待执行,队列容量没有上限

  • newSingleThreadExecutor:创建一个单线程的线程池,线程用完马上回收。当任务超过可处理线程时,会放入阻塞队列等待执行,队列容量没有上限

  • newScheduledThreadPool:创建一个支持定时执行任务的线程池,多数情况下可以用来代替Timer类。总线程数没有上限

2. newCachedThreadPool

创建20个任务,每个任务输出message内容,最后再输出当前线程池创建的线程数。

    

你可能感兴趣的:(Java基础与进阶,java,多线程,thread,Executors,线程池)