安卓中线程池的概念

线程池概念:

Android里面,耗时的网络操作,都会开子线程,在程序里面直接开过多的线程会消耗过多的资源,在众多的开源框架中也总能看到线程池的踪影,所以线程池是必须要会把握的一个知识点.

线程池的作用:

线程池是预先创建线程的一种技术。线程池在还没有任务到来之前,创建一定数量的线程,放入空闲队列中,然后对这些资源进行复用。减少频繁的创建和销毁对象。

接下来介绍一下线程的运行机制:
1.开线程多,会消耗CPU的资源.
2.单核的CPU 同一时刻只能处理一个线程.多核CPU提示处理多个CPU.
但是可能你会问之前比较早的电脑 都是单核的,为什么可以同时运行多个线程呢?  这就跟线程的运行机制有关啦.
注意:操作系统为每一个运行的线程 安排一定的CPU时间也就是时间片.因为这种时间片时间非常短,多个线程之间频繁的进行切换,所以就给用户感觉好像多个线程同时在运行.



1.线程池中涉及到的相关的类
  • Executor:Java里面线程池的顶级接口。
  • ExecutorService:真正的线程池接口。
  • ScheduledExecutorService:能和Timer/TimerTask类似,解决那些需要任务重复执行的问题。
  • ThreadPoolExecutor(重点):ExecutorService的默认实现。
  • ScheduledThreadPoolExecutor:继承ThreadPoolExecutor的ScheduledExecutorService接口实现,周期性任务调度的类实现.

Executors此类提供了一些静态方法 可以帮助我们生成一些线程池:
1.newSingleThreadExecutor 创建一个单线程的线程池, 也即是说,单个线程执行所有任务.将任务按照提交的顺序依次执行.
2.newFixedThreadPool  创建固定大小的线程池,每次提交就创建一个线程.直到达到线程池最大 大小.如果一个线程异常死掉,线程池也会补充一个新的线程.
3.newCachedThreadPool 创建一个可缓存的线程池,如果线程池的大小超过了处理任务需要的线程.那么就会回收部分空闲的线程.此线程池的大小完全依赖 操作系统能够创建的最大线程的大小.
4.newScheduledThreadPool 创建一个大小无限的线程池.

基础的API介绍:





      




猜你喜欢

转载自blog.csdn.net/u012949047/article/details/52267958