学习线程池笔记1

线程池中会缓存一定数量的线程,这样就避免了因为频繁创建和销毁线程所带来的系统开销
Android中的线程池主要是通过Executor来派生特定类型的线程池
ThreadPoolExecutor是线程池的具体实现,通过配置ThreadPoolExecutor可以实现不同线程池
ThreadPoolExecutor的构造方法
public ThreadPoolExecutor(int corePoolSize(核心线程数),
int maximumPoolSize(最大线程数),
long keepAliveTime(非核心线程超时时长),
TimeUnit unit(指定keepAliveTime的时间单位,如:TimeUnit.MILLSECONDS(毫秒)),
BlockingQueue<Runnable> workQueue(线程池中的任务队列execute提交的Runnable
对象会存储在这里),
ThreadFactory threadFactory(线程工厂,ThreadFactory有一个方法Thread 


newThread(Runable r)),


ThreadPoolExecutor执行时:
如果线程池中的线程数量没有达到核心线程数,直接开启一个核心线程执行
如果达到,则插入到任务队列中等待,
如果任务队列已满则开启一个非核心线程来执行任务,
如果已达到线程池的最大值,那么就拒绝执行,并且调用RejectedExecutionHandler的


rejectedExecution方法来通知调用者


自定义线程池时参数设置可以参考AsyncTask
核心线程数为:CPU数+1
最大线程数:2xCPU数+1
超时设置:核心线程无超时,非核心线程1秒,

任务队列容量:128

具体参数要根据实际情况定义,ThreadPoolExecutor构造有个RejectedExecutionHandler handler不常用没有写出

看了很多,先稍稍写一点。

《Android开发艺术探索》很好,很强大。

BlockingQueue可以看看,我去字体颜色怎么不一样了。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值