Java线程池系列--线程池的种类(Executors的用法)
原文网址:Java线程池系列--线程池的种类(Executors的用法)_IT利刃出鞘的博客-CSDN博客
简介
说明
线程池是Java多线程常用的技术,本文介绍线程池的种类,用示例介绍其用法。
相关网址
Java多线程--阻塞队列(BlockingQueue)--使用/教程/实例_IT利刃出鞘的博客-CSDN博客
常见线程池种类
种类 |
核心线程数 |
最大线程数 |
队列长度 |
描述 |
固定大小(fixed) |
n |
n(虽然有但实际不起作用) |
无限 |
|
单个(single) |
1 |
1 |
无限 |
只一个线程在工作,相当于单线程顺序串行执行所有任务。 |
定时(scheduled) |
n |
无限大 |
无限 |
周期性执行任务 |
缓存(cached) |
0 |
无限大 |
0 |
动态增删线程数 |
创建的方法
方法 |
作用 |
说明 |
ThreadPoolExecutor参数 |
Executors.newFixed ThreadPool |
创建固定大小的线程池。 |
提交一个任务创建一个线程,直到最大数。 线程池数一旦达到最大值就会保持不变。 若某线程因异常而结束,会有新线程替代。 |
nThreads, nThreads, //nThreads是传进来的参数 |
Executors.newSingle ThreadExecutor |
创建一个单线程的线程池。 |
只一个线程工作,相当于单线程串行执行。 若此线程因异常而结束,会有新线程替代。 保证任务的执行顺序按任务提交顺序执行。 |
1, 1, |
Executors.newScheduled ThreadPool |
创建一个固定大小的定时线程池。 |
支持定时以及周期性执行任务的需求。 |
corePoolSize, Integer.MAX_VALUE, 0, TimeUnit.NANOSECONDS, //corePoolSize是传进来的参数 |
Executors.newSingleThread ScheduledExecutor |
创建一个单线程的定时线程池。 |
支持定时以及周期性执行任务的需求。 |
return new DelegatedScheduledExecutorService (newScheduledThreadPoolExecutor(1)); |
Executors.newCached ThreadPool |
创建一个可缓存的线程池。 |
若线程池的数量超过了处理任务所需要的线程,就回收部分空闲(默认60秒不执行任务)的线程。 当任务数增加时,此线程池又可以智能的添加新线程来处理任务。 |
0, Integer.MAX_VALUE, |
这些方法的返回值是ExecutorService对象,该对象表示一个线程池,可以执行Runnable对象或者Callable对象代表的线程。
固定大小(fixed)
简介
execute流程
上边是文章的部分内容,为便于维护,全文已迁移到此网址:Java线程池-种类(Executors的用法) - 自学精灵
Java线程池系列--线程池的种类(Executors的用法)相关推荐
- Java 数据持久化系列之池化技术
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 在上一篇文章Java 数据持久化系列之JDBC中,我们了解到使用 ...
- Java 数据持久化系列之 HikariCP (一)
在上一篇<Java 数据持久化系列之池化技术>中,我们了解了池化技术,并使用 Apache-common-Pool2 实现了一个简单连接池,实验对比了它和 HikariCP.Druid 等 ...
- idea 线程内存_Java线程池系列之-Java线程池底层源码分析系列(一)
课程简介: 课程目标:通过本课程学习,深入理解Java线程池,提升自身技术能力与价值. 适用人群:具有Java多线程基础的人群,希望深入理解线程池底层原理的人群. 课程概述:多线程的异步执行方式,虽然 ...
- idea 线程内存_Java线程池系列之-Java线程池底层源码分析系列(二)
课程简介: 课程目标:通过本课程学习,深入理解Java线程池,提升自身技术能力与价值. 适用人群:具有Java多线程基础的人群,希望深入理解线程池底层原理的人群. 课程概述:多线程的异步执行方式,虽然 ...
- [Java高并发系列(5)][详细]Java中线程池(1)--基本概念介绍
1 Java中线程池概述 1.1 什么是线程池? 在一个应用当中, 我们往往需要多次使用线程, 这意味着我们需要多次创建和销毁线程.那么为什么不提供一个机制或概念来管理这些线程呢? 该创建的时候创建, ...
- Java坑人面试题系列: 线程/线程池(高级难度)
ExecutorService 接口及相关API细节详解. Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/qu ...
- Java线程池系列--饱和策略(拒绝策略)的使用(有实例)
原文网址:Java线程池系列--饱和策略(拒绝策略)的使用(有实例)_IT利刃出鞘的博客-CSDN博客 简介 本文用示例介绍Java线程池的饱和策略(拒绝策略). 概述 Java线程池的饱和策略如下: ...
- Java多线程系列 JUC线程池01 线程池框架
转载 http://www.cnblogs.com/skywang12345/p/3509903.html 为什么引入Executor线程池框架 new Thread()的缺点 1. 每次new T ...
- Java高并发编程详解系列-线程池原理自定义线程池
之前博客的所有内容是对单个线程的操作,例如有Thread和Runnable的使用以及ThreadGroup等的使用,但是对于在有些场景下我们需要管理很多的线程,而对于这些线程的管理有一个统一的管理工具 ...
最新文章
- 硬件加速_来试试微软神油灵不灵:更新驱动体验硬件加速GPU计划功能
- 亚马逊首席技术官预测2021年将改变世界的八大技术趋势
- (0041) iOS 开发之几家第三方即时通讯
- maven实战总结,工作中常见操作
- hashmap储存有向图_java-对后边缘进行运算以获取有向图中的循环数
- 国内视频云市场转入整合阶段
- Debug和Release 老程序啊 调试之前 区分一下啊
- vector 注意事项
- 郝斌 mysql_郝斌 SqlServer2005 学习笔记
- 基于ENVI进行遥感影像裁剪
- js实现数组翻转(倒序输出)
- selected和checked区别
- huobi API使用经验整理
- 迅速提高社群用户活跃度,需要怎么做?
- 天下武功无坚不破,唯快不破!
- 笔记系列---------sqlnet.ora维护
- 微信分享签名无效php_【求助】微信分享朋友圈失效
- 码分多址(CDMA)通信原理
- HDU 1512 Monkey King(左偏树+并查集)
- 如何开发在线教学系统,提供线上教学平台的解决方案