Android线程池
Android中常见的线程池有四种,分别是FixedThreadPool、CachedThreadPool、ScheduledThreadPool、SingleThreadExecutor。
FixedThreadPool
线程池是通过Executors的new FixedThreadPool方法来创建,特点是该线程池中的线程数量是固定的,即使线程处于闲置的状态,它们也不会被回收,除非线程池被关闭,当所有的线程都处于活跃状态时,新任务就处于队列中等待线程来处理。
FixedThreadPool只有核心线程,没有非核心线程
CachedThreadPool
线程池是通过Executors的new CachedThreadPool来创建的它是一种线程数量不固定的线程池,它没有核心线程,只有非核心线程,当线程池中的线程都处于活跃状态,就会创建新的线程来处理新的任务,否则就会利用闲置的线程来处理新的任务。线程池中的线程都有超时机制,时长为60s,超过这个时间,闲置的线程就会被回收。这种线程池适合处理大量并且耗时较少的任务。
ScheduledThreadPool
线程池是通过Executors的new ScheduledThreadPool进行创建的。它的核心线程是固定的,但是非核心线程数量是不固定的,并且当非核心线程一处于空闲状态,就立刻被回收。这种线程池适合执行定时任务和具有固定周期的重复任务。
SingleThreadExecutor
线程池是通过Executors的new SingleThreadExecutor进行创建的,这类线程池中只有一个核心线程,确保了所有任务都能欧在同一线程并且按照顺序来执行,这样就不需要考虑线程同步的问题。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!
