美文网首页消除零零发
Android中的线程池

Android中的线程池

作者: IT枫 | 来源:发表于2021-07-17 00:38 被阅读0次

    好久没来简书写文章了,今天接到了阿里的面试,一面,是个技术小伙问了好多技术相关的问题,其中回答不是很好的地方是如何设计自己的线程池。由于现在的三方框架封装的很好也很稳定,就慢慢地淡忘了底层的一些细节。夜深人静之时,再次的重新的梳理下Android中线程池。

    线程池的优点:

    1. 重用线程池中的线程。
    2. 能有效控制线程池的最大并发数,避免大量的线程之间因相互抢占资源而导致阻塞的现象。
    3. 能够对线程进行简单的管理,并提供定时执行以指定间隔循环执行等功能。
      Android中的线程池的概念来源于Java中的Executor,Executor是一个接口,真真的线程池的实现为ThreadPoolExecutor。ThreadPoolExecutor提供了一系列参数来配置线程池。Android的线程池主要分为4类。
    • 1.FixThreadPool
      它是一种线程数量固定的线程池,当线程处于空闲状态时,它们并不会被回收,除非线程池被关闭了。
    
    ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);
    
    
    • 2.CachedThreadPool
      它是一种线程数量不定的线程池,它只有非核心线程,并且其最大线程数为Integer.MAX_VALUE。
    
    ExecutorService cachedThreadPool = Executors.newCachedThreadPool(5);
    
    
    • 3.ScheduledThreadPool
      它的核心线程数是固定的,而非核心数是没有限制的,并且当非核心线程闲置时会立即被回收。
    
    ExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
    
    
    • 4.SingleThreadExecutor
      这类线程内部只有一个核心线程,它确保所有的任务都在同一个线程中按顺序执行。
    
    ExecutorService fixedThreadPool = Executors.newSingleThreadExecutor();
    
    

    相关文章

      网友评论

        本文标题:Android中的线程池

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