常用的线程池有哪些?

简介: 常用的线程池有哪些?

1.newSingleThreadExecutor:创建一个唯一的工作者线程来执行任务,保证所有任务按照指定顺序(FIFO、LIFO、优先级)执行。如果这个线程异常结束的话,会有另一个取代它,保证顺序执行。单工作线程最大的特点是可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的。

2.newFixedThreadPool:创建一个可重用指定线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。FixedThreadPool 可以提高程序效率和节省创建线程时所消耗的开销。但是,在线程池中没有可运行任务时,它不会释放工作线程,还会占用一定的系统资源。

3.newCachedThreadPool:这是一个处理大量短时间工作任务的线程池,工作线程的创建数量没有限制,可以根据需求灵活的往线程池中添加线程。它的几个特点:

(1)它会试图缓存线程并且重用,当没有缓存线程可用的时候,会创建新的工作线程

(2)如果线程闲置的时间超过阈值(默认 1 分钟),则会被终止并移出缓存。

(3)综上两点,所以在系统长时间闲置的时候,不会消耗什么资源。

4.newScheduleThreadPool:创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任务执行,延迟 3 秒执行等。

相关文章
|
7月前
|
NoSQL Java 应用服务中间件
|
缓存 Java 应用服务中间件
线程池的10个坑你都遇到过吗
日常开发中,为了更好管理线程资源,减少创建线程和销毁线程的资源损耗,我们会使用线程池来执行一些异步任务。但是线程池使用不当,就可能会引发生产事故。大家看完肯定会有帮助的~
245 0
|
7月前
|
缓存 Java
|
3月前
|
监控 Java API
如何快速地实现一个线程池
如何快速地实现一个线程池
27 0
|
4月前
|
Java 调度
基于C++11的线程池
基于C++11的线程池
|
7月前
|
存储 Java 调度
浅谈线程池
浅谈线程池
43 1
|
Java
线程池总结
线程池总结
68 0
|
缓存 Java
线程池简单总结
线程池简单总结
|
监控 Java
线程池的讲解和实现
线程池的讲解和实现
|
前端开发 Java 调度
线程池的使用
线程池的使用