主要有四种方式:

newFixedThreadPool:

创建拥有固定数量的线程池,用于线程的重用。在任何时候都最多有指定个数的线程在运行。当提交的任务多于指定的数量时,新提交的任务需要进行等待,直到原有任务运行完成。

但是请注意,如果单个线程关闭前的执行过程中出现故障,由于终止,如果需要执行后续任务,将会有新取而代之。

当线程池调用shutdown后才会停止。

newSingleThreadExecutor:

创建一个只有一个线程的线程池。(注意:但是请注意,如果单个线程关闭前的执行过程中出现故障,由于终止,如果需要执行后续任务,将会有新取而代之)任务保证是顺序执行的,在任何时候都只有一个线程在池中。和其他的比如newFixedThreadPool(1)不同的是,可以无须重新配置就能使用别的线程。

newCachedThreadPool:

创建一个可以线程池,如果需要的话,在池中可以创建足够多的线程,同时如果可以的话,也会重复使用以前构造的线程。这个线程池可以极大的提高那种短时间执行的异步任务的执行效率。如果不存在可重用的线程,那么会重新创建一个,并且添加到池中。如果一个一个线程60秒还没有被使用,那么将会被停止并且从池中移除。

newScheduledThreadPool:

创建一个定长线程池,支持递给你是以及周期性任务的执行。

其他还有:

newSingleThreadScheduledExecutor:

 

创建只有单个线程的线程池,线程定时周期性的执行任务。

newWorkStealingPool:

创建保持足够的线程来支持给定的并行级,并且可以使用多个队列来降低争用一个线程池。

等等。

转载于:https://www.cnblogs.com/youyouzaLearn/p/5351641.html

Java 线程池学习相关推荐

  1. Java线程池(1) - 问题驱动“Java线程池”学习

    下面是几个Java线程池的问题,大家尝试回答一下: 1 使用线程池比手动创建线程好在哪里? 2 线程池的各个参数的含义? 3 线程池有哪 4 种拒绝策略? 4 有哪 6 种常见的线程池?什么是 Jav ...

  2. java 线程池学习小记

    1. 为什么要是用线程池 反复创建线程开销大,用线程池可以让一部分线程一直处于运行状态,避免反复创建 过多的线程池会占用太多的内存,用线程池可以用少量的线程,避免了占用太多内存的问题 2. 使用线程池 ...

  3. Java线程池 - 问题驱动学习

    Java线程池 本章内容: 1.问题驱动"Java线程池"学习 2.线程池的功能需求 3.实现Thread Pool模式 4.JUC Executors源码分析

  4. JAVA线程池ThreadPoolExecutor与阻塞队列BlockingQueue .

    2019独角兽企业重金招聘Python工程师标准>>> 从Java5开始,Java提供了自己的线程池.每次只执行指定数量的线程,java.util.concurrent.Thread ...

  5. 转:JAVA线程池ThreadPoolExecutor与阻塞队列BlockingQueue

    从Java5开始,Java提供了自己的线程池.每次只执行指定数量的线程,java.util.concurrent.ThreadPoolExecutor 就是这样的线程池.以下是我的学习过程. 首先是构 ...

  6. java线程池使用详解ThreadPoolExecutor使用示例

    一 使用线程池的好处 二 Executor 框架 2.1 简介 2.2 Executor 框架结构(主要由三大部分组成) 1) 任务(Runnable /Callable) 2) 任务的执行(Exec ...

  7. Java线程池详解学习:ThreadPoolExecutor

    Java线程池详解学习:ThreadPoolExecutor Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) - zhangpeterx的博客 在源码的目录java/util/ ...

  8. Java 线程池详解学习:FixedThreadPool,CachedThreadPool,ScheduledThreadPool...

    Java常用的线程池有FixedThreadPool和CachedThreadPool,我们可以通过查看他们的源码来进行学习. Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) ...

  9. 基于Java线程池读取数据库中数据(学习+运用)

    基于Java线程池读取数据库中数据(学习+运用) 以下是学习内容 Main.java import java.util.concurrent.ArrayBlockingQueue; import ja ...

  10. 四种Java线程池用法解析

    四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...

最新文章

  1. Hystrix降级逻辑中如何获取触发的异常?
  2. PAT Basic 1032
  3. 将RGB格式的颜色值转换为十六进制
  4. MS SQL数据库日志压缩方法[转]
  5. 洛谷P2751 [USACO4.2]工序安排Job Processing
  6. select2中的ajax请求
  7. error while loading shared libraries: libtinfo.so.5
  8. 设计模式分类及UML汇总
  9. Redis开发与运维读书笔记
  10. 又一打包工具介绍:Installshield 打包安装包心得
  11. 【laravel】切换语言包 中文,英文
  12. spss数据统计分析工具IBM SPSS Statistics 26 for Mac安装教程
  13. java较全的面试题
  14. 【CSDN】markdown小技巧
  15. 多想和你拉手跳恰恰恰
  16. 离散信号分解与卷积和
  17. Postman -中文版-安装教程
  18. python numpy使用_Python NumPy使用
  19. java版溺尸掉三叉戟吗_我的世界1.13通用水鬼塔经验农场(刷三叉戟农场)【内有存档】...
  20. Openvino Linux 2022新版本(2.0)安装与运行sample流程

热门文章

  1. 8.23玩转linux第三天之history、alias、unalias 、mkdir、rmdir、tree命令(一)
  2. sqlite3 小记
  3. [工具开发] 移动梦网短信发送客户端
  4. Hibernate性能优化2( 转)
  5. 聊聊技术人的中年危机
  6. 数据库高可用实战案例——架构优化之清爽一夏
  7. 使用 shell 在多服务器上批量操作
  8. 谈谈工作和学习中,所谓的主动性
  9. Android 高效调试神器 JRebel
  10. 内存泄露之常见问题解决「初级篇」