Fresco Fbcore源码分析_executor(二)

来源:互联网 发布:知乎 教育幼儿书 编辑:程序博客网 时间:2024/06/06 04:33

之前我们主要分析了Executor中关于线程并发这一块相关的逻辑,接下来我们看看关于handler 这部分相关的逻辑。

Handler部分相关类简介

  1. HandlerExecutorService 是一个接口, 它主要提供了下面两个方法:
    1.void quit()//退出handler
    2.boolean isHandlerThread()//判断当前是否在Handler 线程里面
  2. HandlerExecutorServiceImpl 实现了这个接口,同时增加了对ScheduledFutureImpl的处理,对ScheduledFutureImpl的处理过程主要包含下面三个方法
    1. newTaskFor//这个方法主要是用来创建ScheduledFutureImpl对象
    2. submit//这个方法不仅创建ScheduledFutureImpl对象,创建成功后还会运行存储在这个对象里的线程
    3. schedule //这个方法会将ScheduledFutureImpl对象放到一个handler线程里面取执行
  3. ScheduledFutureImpl 包含两个属性:Handler 和 FutureTask.
    Future Task 类似于一个监工,通过它可以实时获取到线程当前的状态并获取返回的结果
  4. UiThreadImmediateExecutorService 从名字上可以看出他是与主线程相关的,他会创建一个与主线程相关的handler 由于它继承了HandlerExecutorServiceImpl,因此它的所有与Runnable相关的操作都在主线程中,将和主线程保持同步
0 0