Android 线程池
来源:互联网 发布:windows xp qq影音下载 编辑:程序博客网 时间:2024/06/07 02:17
1.Android ThreadPoolExecutor:
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory)corePoolSize:线程池中保活的线程数,即使它是空闲状态。maximumPoolSize:线程池中允许的最大的容量。keepAliveTime:线程保活的最大时间,当空闲的线程在keepAliveTime时间之内还没有收到新的异步任务,那么将被回收。unit:keepAliveTime的单位workQueue:异步任务的消息队列threadFactory:为线程池创建新的线程
2.四种类型线程池:
2.1 SingleThreadExecutor:
实例化ThreadPoolExecutor的时候。设置最大的线程数是1。而且保活数也是1。说明该线程池的中只会开启1个线程,并且该线程在空闲的时候也不会被回收。
LinkedBlockingQueue:基于链接节点的可选限制的阻塞队列。这个队列排列元素FIFO(先进先出)。
2.2 CachedThreadPool:
在代码中可看到,保活的线程是零条。即当线程池的线程都是空闲状态的时候,线程就会被系统会送。而之所以命名为Cache,我想是因为保活时间是有60S的。
SynchronousQueue:一个阻塞队列,其中每个插入操作必须等待另一个线程相应的删除操作,反之亦然
2.3 FixedThreadPool:
代码中传递的nThreads,是最大的线程数也是最大的线程保活数。而所以Fixed的特征就是,线程池的所有线程都不会被系统回收(即使是空闲状态)。这样子可以理解为Single的高级版0-0
2.4 ScheduledThreadPool:
super调用的就是ThreadPoolExecutor的构造方法。从代码上其返回的对象是ScheduledThreadPoolExecutor,而从英文翻译可理解为预约线程?并且线程对别用的也是Delayed。
而需要执行线程池,只需要调用execute()方法就可以了。对于schedule线程池,使用ScheduledExecutorService类来指向线程池地址。从而调用ScheduledExecutorService.schedule();方法。
最后关闭就调用shutdown()咯。
参考资料:
http://blog.csdn.net/seu_calvin/article/details/52415337
http://blog.csdn.net/qq_17250009/article/details/50906508
http://www.cnblogs.com/whoislcj/p/5607734.html
- Java(线程)Android线程池
- Android线程,线程池相关
- Android 线程和线程池
- Android线程与线程池
- Android线程和线程池
- Android 线程和线程池
- Android线程和线程池
- Android线程与线程池
- Android线程和线程池
- Android线程与线程池
- Android 线程和线程池
- Android线程和线程池
- Android线程和线程池(四)--Android线程池
- Android ExecutorService线程池
- Android 线程池管理 .
- Android 线程池管理
- Android ExecutorService线程池
- Android 线程池管理
- 神经网络
- 生成19纯数字的字符串或者生成32位UUID
- QT模块简介
- Eclipse下,修改MAVEN 中央仓库地址,解决maven下载慢问题
- SpringMVC MultipartFile文件上传
- Android 线程池
- 如何让 App 在崩溃后自动重启
- Eddy的难题
- Gps开发实战——卫星数量获取
- Android scrollview嵌套问题
- Struts2标签:<s:password>回显
- 设计模式:策略模式
- Nginx简介
- node.js搭建https服务