Android 开发艺术探索笔记(22),kotlin协程和线程的区别

本文详细介绍了Android开发中的线程池,包括FixedThreadPool、CachedThreadPool、ScheduledThreadPool和SingleThreadPool的特性及用法。同时,讨论了Bitmap的高效加载策略,强调了使用Bitmap.Options的inSampleSize进行缩放以减少内存消耗。此外,还提到了Android缓存策略,如LruCache和DiskLruCache,以及它们在ImageLoader中的应用。
摘要由CSDN通过智能技术生成

![这里写图片描述](https://img-blog.csdn.net/20180802151128991?watermark/2/text/aHR0cHM6Ly9ibG9

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

nLmNzZG4ubmV0L3Jpa2thdGhld29ybGQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

上面的构造方法中的参数分别代表:核心线程数、线程池能容纳的最多线程数、非核心线程闲置的超时时长、用于指定keepAliveTime的单位、线程池的队列、线程工厂。

ThreadPoolExecutor执行任务大致遵守如下规则:

(1)如果线程池的线程数未达到最大容纳量,那么会直接启动一个核心线程来执行任务。

(2)如果线程池中的线程数已达到或者超过最大容纳量,那么任务会被插入到任务队列中排队等待执行。

(3)如果步骤2中的任务队列已满,如果这个时候线程池中的线程数未达到最大容纳量,则立刻执行一个非核心线程来执行任务。

(4)如果步骤3中线程数量已经达到最大值,那么就拒绝执行此任务。会通过ThreadPoolExecutor的rejectedExecution来通知调用者。

在AsyncTask(两个线程中的THREAD_POOL_EXECUTOR)就明显的体现了线程池的特点:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值