Android 四大线程池

原创 2018年04月15日 20:48:14

    Android中最常见的四类具有不同特性的线程池分别为FixThreadPool、CachedThreadPool、ScheduleThreadPool以及SingleThreadExecutor。
   

一、 FixThreadPool(一堆人排队上公厕)

    

        (1)从配置参数来看,FixThreadPool只有核心线程,并且数量固定的,也不会被回收,所有线程都活动时,因为队列没有限制大小,新任务会等待执行。

        (2)举个栗子:FixThreadPool其实就像一堆人排队上公厕一样,可以无数多人排队,但是厕所位置就那么多,而且没人上时,厕所也不会被拆迁,哈哈o(∩_∩)o ,很形象吧。

        (3)由于线程不会回收,FixThreadPool会更快地响应外界请求,这也很容易理解,就好像有人突然想上厕所,公厕不是现用现建的。

二、SingleThreadPool(公厕里只有一个坑位)

        (1)从配置参数可以看出,SingleThreadPool只有一个核心线程,确保所有任务都在同一线程中按顺序完成。因此不需要处理线程同步的问题。

        (2)举个栗子:可以把SingleThreadPool简单的理解为FixThreadPool的参数被手动设置为1的情况,即Executors.newFixThreadPool(1).execute(r)。所以SingleThreadPool可以理解为公厕里只有一个坑位,先来先上。为什么只有一个坑位呢,因为这个公厕是收费的,收费的大爷上年纪了,只能管理一个坑位,多了就管不过来了(线程同步问题)。

三、  CachedThreadPool(一堆人去一家很大的咖啡馆喝咖啡)

        (1)CachedThreadPool只有非核心线程,最大线程数非常大,所有线程都活动时,会为新任务创建新线程,否则利用空闲线程(60s空闲时间,过了就会被回收,所以线程池中有0个线程的可能)处理任务。

        (2)任务队列SynchronousQueue相当于一个空集合,导致任何任务都会被立即执行。

        (3) 举个栗子:CachedThreadPool就像是一堆人去一个很大的咖啡馆喝咖啡,里面服务员也很多,随时去,随时都可以喝到咖啡。但是为了响应国家的“光盘行动”,一个人喝剩下的咖啡会被保留60秒,供新来的客人使用,哈哈哈哈哈,好恶心啊。如果你运气好,没有剩下的咖啡,你会得到一杯新咖啡。但是以前客人剩下的咖啡超过60秒,就变质了,会被服务员回收掉。

        (4)比较适合执行大量的耗时较少的任务。喝咖啡人挺多的,喝的时间也不长。

四、ScheduledThreadPool(4个里面唯一一个有延迟执行和周期重复执行的线程池)

        (1)核心线程数固定,非核心线程(闲着没活干会被立即回收)数没有限制。

        (2)从上面代码也可以看出,ScheduledThreadPool主要用于执行定时任务以及有固定周期的重复任务。

Android进阶——多线程系列之四大线程池的使用介绍

前言 线程池一直是初学者最抵触的东西,由于刚开始学习做项目并不会涉及到线程池的使用,但是不去学习它,心里又好像有个石头一直沉着,一直放心不下,其实是很简单的东西,早晚都要学,不如趁现在吧。由于文章从...
  • qq_30379689
  • qq_30379689
  • 2016-12-08 22:09:00
  • 3334

四大线程池详解

new Thread 的弊端首先看一段代码:/** * Created by Zero on 2017/8/30. */ public class ThreadTest { public ...
  • pangpang123654
  • pangpang123654
  • 2017-08-30 17:47:25
  • 26683

android(java)四大线程池详解

  • 2014年02月25日 15:31
  • 27KB
  • 下载

Android—四大线程池的使用介绍

前言 线程池一直是初学者最抵触的东西,由于刚开始学习做项目并不会涉及到线程池的使用,但是不去学习它,心里又好像有个石头一直沉着,一直放心不下,其实是很简单的东西,早晚都要学,不如趁现在吧。由...
  • hxqneuq2012
  • hxqneuq2012
  • 2016-12-16 19:01:50
  • 259

四大线程池的用法

  • 2017年07月18日 08:59
  • 42.27MB
  • 下载

Android的四大主键——activity

Android开发的四大组件:activity,service,Broadcast Receiver,Content Provider. Activity是为用户完成某事而提供一块屏幕的应用组件。 ...
  • zhenlingsheng
  • zhenlingsheng
  • 2015-06-17 17:44:06
  • 836

Android系统架构和四大组件

1.Android系统架构 分为四层:Linux内核 - 类库 - 应用程序框架 - 应用程序 2.Android四大组件 活动(Activity): 用于前台表现功能。 服务(Service...
  • shuaijunqi
  • shuaijunqi
  • 2012-08-17 09:58:16
  • 6153

Android 四大布局总结

1.LinearLayout       这个线性布局大家都不陌生,只是这里面会有一些误区。     如果LinearLayout的排列方向是horizontal,内部的控件就绝对不能将宽度指定为...
  • a1027317350
  • a1027317350
  • 2017-04-27 18:20:57
  • 285

Android系统架构与四大组件

本篇博文主要讲解Android的系统架构。 对于Android开发者来说,有必要了解一下Android应用程序是如何运行的。 Android是一个移动操作系统,它大致分为四层,即Linux内核层,库和...
  • Tyssen
  • Tyssen
  • 2016-01-15 16:51:14
  • 3372
收藏助手
不良信息举报
您举报文章:Android 四大线程池
举报原因:
原因补充:

(最多只允许输入30个字)