java线程池简述

原创 2015年11月17日 23:50:35

  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是抛运行时异常。还有是丢弃策略,丢弃最早的任务策略,或者拒绝的任务由调用方来执行。




相关文章推荐

java线程、线程池、xml解析入门

  • 2012年08月17日 12:08
  • 2.3MB
  • 下载

Java.util.concurrent包学习(一) 线程池

Java.util.concurrent包学习(一) 线程池   (2013-11-11 22:04:30) 转载▼   分类: 学习 ...

Java线程池的原理与实现

  • 2010年05月14日 17:33
  • 14KB
  • 下载

JAVA线程池的分析和使用

  • 2015年08月26日 10:09
  • 25KB
  • 下载

Java多线程简析——Synchronized(同步锁)、Lock以及线程池

Java多线程 Java中,可运行的程序都是有一个或多个进程组成。进程则是由多个线程组成的。 最简单的一个进程,会包括mian线程以及GC线程。 线程的状态 线程状态由以下一张网上图片来说明: 在...

Java线程池应用

  • 2013年12月10日 23:04
  • 476KB
  • 下载

一心多用多线程-细谈java线程池submit与execute的区别

深夜学习,发现ThreadPoolExecutor里面一个小知识点,故开热点连wifi怒写submit与execute方法的区别。1.问题的来源在看书的时候,涉及到java线程池问题的时候常常面临这样...
  • hayre
  • hayre
  • 2016年11月24日 01:56
  • 5679

Java线程池.pdf

  • 2008年02月29日 10:04
  • 251KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java线程池简述
举报原因:
原因补充:

(最多只允许输入30个字)