Android线程
一、 new Thread() VS ThreadPoolExcutor
1. new Thread()的弊端
1) 每次new Thread() 性能差
2)线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom
3)缺乏更多功能,如定时执行,定期执行,线程中断
2. ThreadPoolExecutor--线程池,多线程的管理者
引入好处:
1)提升性能
2)防止内存过度消耗,控制活动线程的数量,防止并发线程过多
分类:
1)new CachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,如无可回收线程,则新建线程
2)new FixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待
3)new ScheduledThreadPool 创建一个定长的线程池,支持定时及周期性任务执行
4)new SingleThreadExecutor 创建一个单线程化的线程池,他只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO,LIFO)优先级别执行
3. 拓展:为什么Progress可以在工作线程池中工作
回答:因为progress的setProgress()方法添加了判断,如果不是主线程,使用了post()方法(依旧是依旧handle原理),通过handler将消息发送出去
相关推荐
csdnuuu 2020-01-03
Helene 2012-05-31
ljngya 2020-07-30
齐天大圣数据候 2020-07-30
爱传文档 2020-07-28
jameszgw 2020-06-25
fengling 2020-05-31
meylovezn 2020-05-30
大步流星 2020-05-28
Ken专注后端技术 2020-05-07
nurvnurv 2020-05-01
cenylon 2020-04-29
fengyeezju 2020-04-26
csde 2020-03-05
nbfcome 2020-02-21
huaye00 2020-02-18
xdhywj 2020-02-13
greensomnuss 2012-09-11