美文网首页推荐原创
Android 线程池原理

Android 线程池原理

作者: 杰奎琳子 | 来源:发表于2020-08-07 15:47 被阅读0次

线程池核心类 :

ThreadPoolExecutor:提供了一系列参数来配置线程池

线程池优点:

1.重用线程池中的线程,线程在执行完任务后不会立刻销毁,而会等待另外的任务,减少创建、销毁线程的次数。

2.有效控制线程池的最大并发数,避免大量线程抢占资源出现的问题。

3.对多个线程进行统一地管理,可提供定时执行及指定间隔循环执行的功能。

构造方法参数理解:

public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory)

corePoolSize: 线程池中核心线程的数量。

maximumPoolSize:线程池中最大线程数量。

keepAliveTime:非核心线程的超时时长,当系统中非核心线程闲置时间超过keepAliveTime之后,则会被回收。如果ThreadPoolExecutor的allowCoreThreadTimeOut属性设置为true,则该参数也表示核心线程的超时时长。

unit:keepAliveTime这个参数的单位,有纳秒、微秒、毫秒、秒、分、时、天等。

workQueue:线程池中的任务队列,该队列主要用来存储已经被提交但是尚未执行的任务。存储在这里的任务是由ThreadPoolExecutor的execute方法提交来的。

threadFactory:为线程池提供创建新线程的功能,这个我们一般使用默认即可。

**handler: 拒绝策略,当线程无法执行新任务时(一般是由于线程池中的线程数量已经达到最大数或者线程池关闭导致的),默认情况下,当线程池无法处理新线程时,会抛出一个RejectedExecutionException。

ThreadPoolExecutor 执行任务时大致遵循如下流程:

1.如果线程池中的线程数未达到核心线程数,则会立马启用一个核心线程去执行。

2.如果线程池中的线程数已经达到核心线程数,且任务队列workQueue未满,则将新线程放入workQueue中等待执行。

3.如果线程池中的线程数已经达到核心线程数但未超过线程池规定最大值,且workQueue已满,则开启一个非核心线程来执行任务。

4.如果线程池中的线程数已经超过线程池规定最大值,则拒绝执行该任务,采取饱和策略,并抛出RejectedExecutionException异常。

相关文章

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

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

  • Android | 线程池的使用和简单原理

    参考文献: Android 多线程: 完全解析线程池ThreadPool原理&使用 Android开发——Andr...

  • 线程+线程池+使用

    Android 多线程: 完全解析线程池ThreadPool原理&使用https://blog.csdn.net/...

  • 面试题2019年7月

    线程池原理 参考:Java 线程池原理分析 线程池工作原理:1、线程数量小于 corePoolSize,直接创建新...

  • android 线程池原理

    android 线程池原理 线程池的好处 1.频繁的创建和销毁线程,会带来性能的问题。线程的创建和销毁都需要时间,...

  • Android进阶-线程池

    在上一篇文章(为什么要学习) AsyncTask 原理 提到了线程池,那么现在来学习学习 Android 的线程池...

  • Android 线程池原理

    线程池核心类 : ThreadPoolExecutor:提供了一系列参数来配置线程池 线程池优点: 1.重用线程池...

  • 线程池创建和相关知识

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

  • 源码分析AsyncTask的工作原理

    一、AsyncTask原理介绍 AsyncTask的实现原理 = 线程池+ Handler 其中:线程池用于线程调...

  • 线程池与Android的日日夜夜

    线程池与Android的日日夜夜 假如你Java中研究到了线程池的话,一般来说,你已经对线程的原理颇有研究了,或者...

网友评论

    本文标题:Android 线程池原理

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