摘要:
JAVA5提供了多种类型的线程池,如果你对这些线程池的特点以及类型不太熟悉或者非常熟悉,请帮忙看看这篇文章(顺便帮忙解决里面存在的问题,谢谢!):http://xtu-xiaoxin.iteye.com/admin/blogs/647580 如果对ThreadPoolExecutor还不是很熟悉,可以看看一篇对ThreadPoolExecutor的介绍的博文:http://blog.csdn.net/waterbig/archive/2009/11/10/4794244.aspx 首先,JAVA中使用ThreadPoolExecutor的常用方式: 实例代码1Java代码Runnablerun 阅读全文
2012年12月15日 #
摘要:
我们都知道使用线程池能够控制线程的数量,尤其是大量的“短命”线程存在时,线程池将大大降低系统消耗(内存和CPU)。不过,线程池也同样需要管理,于是我写了本篇。首先,我们来看看管理器的整个继承关系:显而易见,有ThreadPoolExecutor和ScheduledThreadPoolExecutor两个实现类,当然Executor类里也有一些内部类实现了特定的功能(如class DelegatedScheduledExecutorService),我们也可以自己通过扩展这里所有的接口、抽象类、类来实现自己的特定功能,如继承ThreadPoolExecutor类,覆写beforeExecute( 阅读全文
摘要:
Executor框架是juc里提供的线程池的实现。前两天看了下Executor框架的一些源码,做个简单的总结。线程池大概的思路是维护一个的线程池用于执行提交的任务。我理解池的技术的主要意义有两个:资源的控制,如并发量限制。像连接池这种是对数据库资源的保护。资源的有效利用,如线程复用,避免频繁创建线程和线程上下文切换。那么想象中设计一个线程池就需要有线程池大小、线程生命周期管理、等待队列等等功能,下面结合代码看看原理。Excutor整体结构如下:Executor接口定义了最基本的execute方法,用于接收用户提交任务。ExecutorService定义了线程池终止和创建及提交futureTas 阅读全文