美文网首页
Android中的4种线程池

Android中的4种线程池

作者: simit | 来源:发表于2018-10-17 20:24 被阅读0次

使用线程池的好处:
1.线程池中的线程可以复用,能够减少因线程的创建和销毁所带来的性能的消耗。
2.能够有效控制线程池的最大并发数,避免线程之间因互相抢占系统资源而导致阻塞的现象。
3.能够对线程进行简单的管理,提供定时执行以及指定间隔循环执行等功能。
Android中的线程池主要分为4类,FixedThreadPool,CachedThreadPool,ScheduledThreadPool和SingleThreadExexutor。这四种线程池可以通过Executors所提供的工厂方法来得到。这四种线程是通过配置ThreadPoolExecutor(Executor接口的实现类)的不同参数来实现的。
ThreadPoolExecutor执行任务时遵循的原则:
1.如果线程池中的线程数量未达到核心线程的数量,会直接启动一个核心线程来执行任务。
2.如果线程池中的线程数量已经达到或超过核心线程的数量,那么任务会被插入到任务队列中排队等待执行。
3.如果任务队列已满并且线程数量未达到线程池规定的最大值,那么会立即启动一个非核心线程来执行任务。
4.如果任务队列已满并且线程数量已经达到线程池规定的最大值,那么会拒绝执行此任务,抛出RejectedExecution。
1.FixedThreadPool
是一种线程数量固定的线程池,当线程处于闲置状态时,不会被回收,除非线程池关闭了。当所有的线程都处于活动状态时,新的任务会处于等待状态,直到有线程空置出来,FixedThreadPool只有核心线程,并且不会被回收,所以FixedThreadPool能够快速响应外界的请求。
2.CachedThreadPool
线程数量不固定,只有核心线程,最大线程数为 Integer.MAX_VALUE,当线程池中的线程都处于活动状态时,线程池会创建新的线程来处理任务,CachedThreadPool有超时机制,超时时间为60秒,超过60秒闲置线程就会被回收,因此当整个线程池都处于闲置状态时,线程池中的所有线程都会因超时被停止,此时CachedThreadPool是不占用任何系统资源的,适合执行大量耗时较少的任务。
3.ScheduledThreadPool
核心线程数量固定,非核心线程数量没有限制,非核心线程闲置时会被立即回收,主要用于执行定时任务和具有固定周期的重复任务。
4.SingleThreadExexutor
只有一个核心线程,所有的任务都在同一个线程中执行,避免了线程同步的问题。

相关文章

  • Android线程池的使用

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

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

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

  • 19. 线程池

    Android 中的线程池就是 java 中的线程池,即 ThreadPoolExecutor 类。 Java 通...

  • 线程池

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

  • Android 多线程

    AsyncTaskHandlerThreadIntentServiceandroid中的线程池 android 中...

  • 笔记:Android线程和线程池

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

  • Android面试之线程和线程池

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

  • 第十九周 线程池

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

  • 线程池创建和相关知识

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

  • Android中的线程池

    为什么要使用线程池?Android 中的线程池有哪些?它们的区别是什么? 一、线程池的作用 重用线程池中的线程,可...

网友评论

      本文标题:Android中的4种线程池

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