Android线程池详解

Posted cfy137000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android线程池详解相关的知识,希望对你有一定的参考价值。

直接使用线程

android开发的时候,当我们需要完成一个耗时操作的时候,通常会新建一个子线程出来,例如如下代码
new Thread(new Runnable() {
      @Override
      public void run() {
         //耗时代码
      }
}).start();
这种方式的线程随处可见,但是这种方式的写法是存在一定问题的,我们知道,在操作系统中,线程是操作系统调度的最小单元,同时线程又不能无限制的产生,并且线程的创建和销毁都会有资源的开销,同时当线程频繁的创建或者销毁的时候,还会让GC频繁的运行,造成程序的卡顿,例如当我们需要网络请求的时候,一定是讲网络请求的代码放到子线程中去运行的,同时如果是ListView中图片的画,采用传统的new Thread的形式,会在ListView滑动的时候,一下开数十个子线程,程序就会卡顿起来;或者当我们进行下载的时候,通常会指定下载的优先级,优先级高的优先下载,优先级低的会暂停排队,这种需求传统的Thread也是做不到的。那么这就需要用到线程池了。

以上是关于Android线程池详解的主要内容,如果未能解决你的问题,请参考以下文章

Java线程池详解

Java 线程池详解

Java线程池详解

Android 多线程下载,断点续传,线程池

Android线程池ThreadPoolExecutor详解

newCacheThreadPool()newFixedThreadPool()newScheduledThreadPool()newSingleThreadExecutor()自定义线程池(代码片段