Android中常见到的很多通用组件一般都离不开”池”的概念,如各种图片加载库,网络请求库,即使Android的消息传递机制中的Meaasge当使用Meaasge.obtain()就是使用的Meaasge池中的对象,因此这个概念很重要。本文将介绍的线程池技术同样符合这一思想。 线程池的优点:重用线程 ...
分类:
编程语言 时间:
2017-09-17 11:34:51
阅读次数:
117
Android开发艺术探索1 Activity的生命周期和启动模式 典型情况下生命周期异常情况下生命周期 启动模式标准模式栈顶复用模式栈内复用模式单实例模式 Activity的FlagsIntentFilter的匹配规则 2 IPC机制 进程间通信 SerializanleParcelableBin ...
分类:
移动开发 时间:
2017-08-24 16:17:19
阅读次数:
209
在ThreadPoolExecutor的构造方法中,定义了线程池的核心线程数,最大线程数,过期时间,时间单位,阻塞队列,创建线程的工厂,拒绝策略。下面来看看默认的线程工厂,它到底是如何创建新的线程的。 DefaultThreadFactory实现了ThreadFactory接口, 在DefaultT ...
分类:
编程语言 时间:
2017-08-17 17:18:36
阅读次数:
171
当向线程池提交一个任务之后,线程池是怎样处理这个任务的呢?本节来看一下线程池 的主要处理流程,处理流程图所看到的。 从图中能够看出,当提交一个新任务到线程池时,线程池的处理流程例如以下。 1)线程池推断核心线程池里的线程是否都在运行任务。假设不是。则创建一个新的工作 线程来运行任务。假设核心线程池里 ...
分类:
编程语言 时间:
2017-08-05 20:27:50
阅读次数:
146
合理使用线程池能够带来3个好处:1)降低资源消耗;2)提高响应速度;3)提高线程的可管理性。那么线程池是如何工作的呢,借用并发编程艺术一书中的话来描述当一个任务提交给线程池之后,线程池会怎么做?首先,线程池会判断核心线程池里的线程(线程总数是30,则coreSize有可能..
分类:
编程语言 时间:
2017-07-09 10:41:08
阅读次数:
127
衡量CPU的使用Measure CPU Use 有效地使用CPU可以使应用程序更快更有效地运行。尽管您正在为特定平台编写应用程序,但请记住,即使是相同的通用平台也有不同的CPU能力。工具帮助您在各种条件下进行测试,从而使您能够确定应用程序使用多个核心、线程和其他资源有多好。Effective use ...
分类:
其他好文 时间:
2017-06-11 17:30:47
阅读次数:
185
Java并发基础(六) - 线程池 1. 概述 这里讲一下Java并发编程的线程池的原理及其实现 2. 线程池的基本用法 2.1 线程池的处理流程图 该图来自《Java并发编程的艺术》: 从图中我们可以看出当一个新任务到线程池时,线程池的处理流程如下: 线程池首先判断线程池里面线程数是否达到核心线程 ...
分类:
编程语言 时间:
2017-06-06 22:05:29
阅读次数:
266
四、自定义线程池public ThreadPoolExecutor(int corePoolSize, //核心线程数,new的时候直接初始化的线程数量int maxinumPoolSize, //最大线程数long keppAliveTime, //空闲时间TimeUnit unit, //时间单 ...
分类:
编程语言 时间:
2017-05-15 11:53:07
阅读次数:
208
一、核心线程池内部实现 为了能够更好地控制多线程,JDK提供了一套Executor框架,帮助开发人员有效地进行线程控制,其本质就是一个线程池。它的核心成员如图 以上成员均在java.util.concurrent包中,是JDK并发包的核心类。其中ThreadPoolExecutor表示一个线程池。E ...
分类:
编程语言 时间:
2017-05-14 01:07:13
阅读次数:
300
java线程池ThreadPoolExector源码分析 今天研究了下ThreadPoolExector源码,大致上总结了以下几点跟大家分享下: 一、ThreadPoolExector几个主要变量 先了解下ThreadPoolExector中比较重要的几个变量。 corePoolSize:核心线程数 ...
分类:
编程语言 时间:
2017-03-10 17:49:48
阅读次数:
283