引入线程池的好处1)提升性能。创建和消耗对象费时费CPU资源2)防止内存过度消耗。控制活动线程的数量,防止并发线程过多。我们来看一下线程池的简单的构造public ThreadPoolExecutor...
分类:
移动开发 时间:
2016-11-19 21:20:16
阅读次数:
255
java.util.concurrent包 接口及相关类的继承关系: Executor |-ExecutorService <- ThreadPoolExecutor |-ScheduledExecutorService <- ScheduledThreadPoolExecutor 由于Thread ...
分类:
编程语言 时间:
2016-11-01 01:15:57
阅读次数:
188
ThreadPoolExecutor 线程执行服务 Executors ...
分类:
编程语言 时间:
2016-10-21 19:51:19
阅读次数:
252
ThreadPoolExecutor线程池 其中比较容易让人误解的是:corePoolSize,maximumPoolSize,workQueue之间关系。 1.当线程池小于corePoolSize时,新提交任务将创建一个新线程执行任务,即使此时线程池中存在空闲线程。 2.当线程池达到corePoo ...
分类:
其他好文 时间:
2016-10-12 11:20:00
阅读次数:
205
在JUC包中,线程池部分本身有很多组件,可以说是前面所分析的各种技术的一个综合应用。从本文开始,将综合前面的知识,逐个分析线程池的各个组件。
-Executor/Executors
-Thread...
分类:
编程语言 时间:
2016-09-30 09:58:32
阅读次数:
270
一、AQS简介AQS全称AbstractQueuedSynchronizer,是java并发包中的一个类,该类更像是一个框架,提供了一些模板方法供子类实现,从而实现了不同的同步器,如下图所示。ReentrantLock,ReentrantReadWriteLock,ThreadPoolExecutor这些常见类都使用了AQS。以下是AQS的成员变量:p..
分类:
其他好文 时间:
2016-09-27 11:54:38
阅读次数:
139
先来看一下构造函数 重点讲解: 1、当线程池小于corePoolSize时,新提交任务将创建一个新线程执行任务,即使此时线程池中存在空闲线程。 2、当线程池达到corePoolSize时,新提交任务将被放入workQueue中,等待线程池中任务调度执行 3、当workQueue已满,且maximum ...
分类:
编程语言 时间:
2016-09-27 11:46:33
阅读次数:
201
多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 线程池核心类:ThreadPoolExecutor 四种线程池: newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理的需要,可以灵活回收空闲线程,若无可 ...
分类:
编程语言 时间:
2016-09-12 14:18:22
阅读次数:
150
上一篇讲述了ThreadPoolExecutor的执行过程,我们也能看出来一个很明显的问题:这个线程池的构造函数比较复杂,对于不十分理解其运作原理的程序员,自己构造它可能体现和想象中不一样的行为。比如阻塞队列放什么,corePoolSize怎么设置等等。 所以和Math这种工具类一样,并发包也提供了 ...
分类:
编程语言 时间:
2016-09-06 09:03:53
阅读次数:
146
学习这个很长时间了一直没有去做个总结,现在大致总结一下并发包的线程池。 首先,任何代码都是解决问题的,线程池解决什么问题? 如果我们不用线程池,每次需要跑一个线程的时候自己new一个,会导致几个问题: 1,不好统一管理线程和它们的相互之间的依赖关系,尤其是有的程序要做的事情很多的时候,线程的处理就显 ...
分类:
编程语言 时间:
2016-09-05 12:23:23
阅读次数:
176