Fresco Fbcore源码分析_executor(二)
2015-11-13 13:37
686 查看
之前我们主要分析了Executor中关于线程并发这一块相关的逻辑,接下来我们看看关于handler 这部分相关的逻辑。
Handler部分相关类简介
HandlerExecutorService 是一个接口, 它主要提供了下面两个方法:
1.void quit()//退出handler
2.boolean isHandlerThread()//判断当前是否在Handler 线程里面
HandlerExecutorServiceImpl 实现了这个接口,同时增加了对ScheduledFutureImpl的处理,对ScheduledFutureImpl的处理过程主要包含下面三个方法
newTaskFor//这个方法主要是用来创建ScheduledFutureImpl对象
submit//这个方法不仅创建ScheduledFutureImpl对象,创建成功后还会运行存储在这个对象里的线程
schedule //这个方法会将ScheduledFutureImpl对象放到一个handler线程里面取执行
ScheduledFutureImpl 包含两个属性:Handler 和 FutureTask.
Future Task 类似于一个监工,通过它可以实时获取到线程当前的状态并获取返回的结果
UiThreadImmediateExecutorService 从名字上可以看出他是与主线程相关的,他会创建一个与主线程相关的handler 由于它继承了HandlerExecutorServiceImpl,因此它的所有与Runnable相关的操作都在主线程中,将和主线程保持同步
Handler部分相关类简介
HandlerExecutorService 是一个接口, 它主要提供了下面两个方法:
1.void quit()//退出handler
2.boolean isHandlerThread()//判断当前是否在Handler 线程里面
HandlerExecutorServiceImpl 实现了这个接口,同时增加了对ScheduledFutureImpl的处理,对ScheduledFutureImpl的处理过程主要包含下面三个方法
newTaskFor//这个方法主要是用来创建ScheduledFutureImpl对象
submit//这个方法不仅创建ScheduledFutureImpl对象,创建成功后还会运行存储在这个对象里的线程
schedule //这个方法会将ScheduledFutureImpl对象放到一个handler线程里面取执行
ScheduledFutureImpl 包含两个属性:Handler 和 FutureTask.
Future Task 类似于一个监工,通过它可以实时获取到线程当前的状态并获取返回的结果
UiThreadImmediateExecutorService 从名字上可以看出他是与主线程相关的,他会创建一个与主线程相关的handler 由于它继承了HandlerExecutorServiceImpl,因此它的所有与Runnable相关的操作都在主线程中,将和主线程保持同步
相关文章推荐
- 从源码安装Mysql/Percona 5.5
- C#线程间不能调用剪切板的解决方法
- 浅析Ruby的源代码布局及其编程风格
- C#线程同步的三类情景分析
- C#获取进程或线程相关信息的方法
- C#停止线程的方法
- C#子线程更新UI控件的方法实例总结
- C#线程队列用法实例分析
- C++使用CriticalSection实现线程同步实例
- 基于C++实现的线程休眠代码
- VB读取线程、句柄及写入内存的API代码实例
- C#网络编程基础之进程和线程详解
- C#通过Semaphore类控制线程队列的方法
- C#多线程处理多个队列数据的方法
- asp.net 抓取网页源码三种实现方法
- C#实现线程安全的简易日志记录方法
- C#中线程同步对象的方法分析
- JS小游戏之仙剑翻牌源码详解
- ASP.NET线程相关配置
- JS小游戏之宇宙战机源码详解