关于Android线程池

作者: Aron1001 | 来源:发表于2018-09-12 15:09 被阅读14次
  • 前言
    一般而言,我们在android程序代码中不要显式的创建线程,而是要采取线程池(也就是ThreadPoolExecutor类)的方式创建。

  • 关于线程池的几个类
    直接上图


    图片.png

    ThreadPoolExecutor的构造方法如下:


    图片.png
    1,corePoolSize:核心线程数
    线程池新建线程的时候,如果当前线程总数小于 corePoolSize ,则新建的是核心线程;如果超过corePoolSize,则新建的是非核心线程。
    2,maximumPoolSize:线程总数= 核心线程数 + 非核心线程数

    3,keepAliveTime:超时时长
    非核心线程如果长时间闲置,超过这个时长便被回收
    4,unit
    设置keepAliveTime的单位,MILLISECONDS : 毫秒 、SECONDS : 秒、MINUTES : 分、HOURS : 小时、DAYS : 天
    5,workQueue:缓冲任务队列
    线程池的execute方法会将Runnable对象存储起来,当所有的核心线程都有活干,新添加的任务会被添加到这个队列中等待处理,如果队列满了,则新建非核心线程执行任务。
    6,threadFactory:线程工厂接口
    只有一个new Thread(Runnable r)方法,可以认为是线程池创建新线程 。
    7,handler:
    这个主要是用来抛异常的,如果线程无法执行新任务一般会抛一个RejectedExecutionException异常。
    另外,为了使用方便,java提供了四种线程池:

    • newFixedThreadPool :定长线程池
    • newCacheThreadPool:缓存线程池
    • newScheduledThreadPool:定长任务线程池
    • newSingleThreadExecutor :创建一个单线程的线程池
  • 简单实例


    图片.png

相关文章

  • 线程池创建和相关知识

    线程池创建(单例):Android线程池得要这么用 - 简书 线程池相关知识:Android开发之线程池使用总结 ...

  • 深入浅出Java(Android )线程池ThreadPoolE

    前言 关于线程池在Java/Android开发中,设计到并发的请求,那基本上是离不开线程池了。用线程池的好处: 1...

  • 关于Android线程池

    前言一般而言,我们在android程序代码中不要显式的创建线程,而是要采取线程池(也就是ThreadPoolExe...

  • Android线程池的使用

    一、线程与线程池,为什么要使用线程池 1、Android中的线程 在Android中有主线程和子线程的区分。主线程...

  • 线程池

    话题:线程池Android中的线程池有哪些?它们的区别是什么?为什么要使用线程池? 线程是Android里面一个很...

  • Update AsyncTask And Make New On

    关于android并发 AsyncTask在android2.3的时候线程池是一个核心数为5线程,队列可容纳10线...

  • 笔记:Android线程和线程池

    Android线程和线程池 Android中的线程操作相关的类有 AsyncTask IntentService ...

  • 第十九周 线程池

    话题:线程池 Android 中的线程池有哪些?它们的区别是什么?为什么要使用线程池?关键字:线程池、Thread...

  • Android 多线程:线程池理解和使用总结

    一、Android线程池介绍 1.1 原理 Android中的线程池概念来源于Java中的Executor,Exe...

  • Android面试之线程和线程池

    Android中的线程形态 AsyncTask底层用到了线程池。AsyncTask封装了线程池和Handler,它...

网友评论

    本文标题:关于Android线程池

    本文链接:https://www.haomeiwen.com/subject/mxvvgftx.html