线程和线程池

Android线程

Android的线程形式主要有四种

  1. Thread+HandlerHandler
  2. AsyncTask异步任务
  3. HandlerThreadAndroid 中的 HandlerThread 类详解
  4. IntentServiceAndroid IntentService详解

Android中的线程池

Android开发之线程池使用总结
Java并发——ThreadPoolExecutor详解(一)

ForkJoinPool

线程池ForkJoinPool简介
介绍一下ForkJoinPool的使用

使用线程池的原因:

在android开发中经常会使用多线程异步来处理相关任务,而如果用传统的newThread来创建一个子线程进行处理,会造成一些严重的问题:

  1. 在任务众多的情况下,系统要为每一个任务创建一个线程,而任务执行完毕后会销毁每一个线程,所以会造成线程频繁地创建与销毁。
  2. 多个线程频繁地创建会占用大量的资源,并且在资源竞争的时候就容易出现问题,同时这么多的线程缺乏一个统一的管理,容易造成界面的卡顿。
  3. 多个线程频繁地销毁,会频繁地调用GC机制,这会使性能降低,又非常耗时。
    总而言之:频繁地为每一个任务创建一个线程,缺乏统一管理,降低性能,并且容易出现问题。
    为了解决这些问题,就要用到今天的主角——线程池.

线程池使用的好处:

  1. 对多个线程进行统一地管理,避免资源竞争中出现的问题。
  2. (重点):对线程进行复用,线程在执行完任务后不会立刻销毁,而会等待另外的任务,这样就不会频繁地创建、销毁线程和调用GC。
  3. JAVA提供了一套完整的ExecutorService线程池创建的api,可创建多种功能不一的线程池,使用起来很方便。

FutureTask

FutureTask使用完整示例

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容