java线程池简述
来源:互联网 发布:mac high sierra体验 编辑:程序博客网 时间:2024/05/04 19:59
java中如果业务上需要从数据库中抓取n条数据处理,这时为了加快处理速度一般是采用池程池进行处理。
java默认实现的线程池是ThreadPoolExecutor。该类继承AbtractExecutorService,而AbstractExecutorService实现接口Executor及ExecutorService。
Executor接口定义了一个executor(Runable command)方法。ExecutorService则定义了submit,shutdown等方法。
ThreadPoolExecutor对于开发用户来讲,可以定制它的几个属性:
corePoolSize(核心线程数),maxPoolSize(最大线程数),线程空闲时间(用于将大于corePoolSize个数的线程释放,使线程数维持在corePoolSize这个数上),任务队列。
往线程池丢一个任务,之后的基本流程是:
1.当当前线程池中活动的线程数小于corePoolSize时,创建一个新线程用于执行当前任务
2.否则当当前线程池中活动的线程数大于等于corePoolSize时,将当前任务放入任务队列。
这里如果任务队列也满了,则只能再次创建线程来执行当前任务。
而最坏的情况下是创建的线程数超过maxPoolSize时,则会返回失败,或抛出异常。具体要看RejectHandler实现,default是抛运行时异常。还有是丢弃策略,丢弃最早的任务策略,或者拒绝的任务由调用方来执行。
0 0
- java线程池简述
- 简述Java线程池以及使用
- Java线程安全简述
- JAVA线程实现简述
- 线程池简述
- java线程池(一) 简述线程池的几种使用方式
- Java线程同步中关键字synchronized简述
- Java之线程的创建简述
- java代码中线程安全级别 简述
- 简述线程
- 线程锁Java.util.concurrent.lock与Synchronized区别简述
- Java简述
- JAVA简述
- Java简述
- Java简述
- Java 简述
- JAVA简述
- C#线程简述
- 组合模式
- poj 2304/3032 水题(时钟转动/扑克排序)
- KVC & KVO 学习笔记by STP
- 文章标题
- ActionBar介绍
- java线程池简述
- Terminal(终端)中代理的配置---Linux应用中遇到的问题笔记
- MongoDB——详谈CURD
- 解决dpkg: ../../src/packages.c:227: process_queue: Assertion `dependtry <= 4' failed
- 新手学编程?选python吧!
- 刷题记录2015.11.17
- Ubuntu14.04忘记root密码的解决方法
- jmail + c#实现邮件的接收
- vim ide配置