Android线程池详解
Posted cfy137000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android线程池详解相关的知识,希望对你有一定的参考价值。
直接使用线程
在android开发的时候,当我们需要完成一个耗时操作的时候,通常会新建一个子线程出来,例如如下代码
new Thread(new Runnable() {
@Override
public void run() {
//耗时代码
}
}).start();
这种方式的线程随处可见,但是这种方式的写法是存在一定问题的,我们知道,在操作系统中,线程是操作系统调度的最小单元,同时线程又不能无限制的产生,并且线程的创建和销毁都会有资源的开销,同时当线程频繁的创建或者销毁的时候,还会让GC频繁的运行,造成程序的卡顿,例如当我们需要网络请求的时候,一定是讲网络请求的代码放到子线程中去运行的,同时如果是ListView中图片的画,采用传统的new Thread的形式,会在ListView滑动的时候,一下开数十个子线程,程序就会卡顿起来;或者当我们进行下载的时候,通常会指定下载的优先级,优先级高的优先下载,优先级低的会暂停排队,这种需求传统的Thread也是做不到的。那么这就需要用到线程池了。
以上是关于Android线程池详解的主要内容,如果未能解决你的问题,请参考以下文章
Android线程池ThreadPoolExecutor详解
newCacheThreadPool()newFixedThreadPool()newScheduledThreadPool()newSingleThreadExecutor()自定义线程池(代码片段