Call分析(二)之ProcessThread和Module
来源:互联网 发布:.com域名怎么续费 编辑:程序博客网 时间:2024/06/06 03:50
我们看下Call里面的两个成员module_process_thread_和
pacer_thread_,从名字可看出他们是跟线程运行有关的,具体看下他们的类图:
实际上,当我们要运行一个任务时,会将它打包成一个Module, 然后放到一个新的线程里面去运行,我们先来看下ProcessThread的Start()函数里面执行了什么:
由图可见,调用Start()后会创建一个新线程,在线程中循环遍历module,执行module的process(), 遍历queue, 执行task的run(), 然后调用wake_up->Wait()进入休眠,等待下一次唤醒。
我们再来看一下ProcessThread的RegisterModule函数:
void ProcessThreadImpl::RegisterModule(Module* module) { modules_.push_back(ModuleCallback(module)); wake_up_->Set();}
我们可以看到他只是将module插入modules队列,然后唤醒线程。
阅读全文
0 0
- Call分析(二)之ProcessThread和Module
- Hadoop源码分析之二(RPC机制之Call处理)
- Hadoop源码分析之二(RPC机制之Call处理)
- 一步步学习汇编(11)之Call和ret指令(破解软件的必修课二)
- JavaScript 面向对象之二 —— 函数上下文(call() 和 apply())
- Call分析(一)
- call和apply上手分析
- 二、call和apply的用法(详细介绍)
- Weex Android SDK源码分析之Module(modal)
- Weex Android SDK源码分析之Module(navigator)
- Weex Android SDK源码分析之Module(stream)
- Weex Android SDK源码分析之Module(webview)
- Weex Android SDK源码分析之Module(animation)
- Device Module之platform详细分析(基于kernel 4.11)
- Call Center Stats for Asterisk 之二
- PHP之MODULE学习笔记(二)
- javascript之function对象包括call()和apply()
- CALL和RET配合使用、分析
- mysql安装目录的问题
- opencv 实现放射变换和投影变换
- 2017.5.21测试 题四 遭遇战
- input文本框绑定回车键事件及火狐浏览器不支持event
- mongodb的安装与使用
- Call分析(二)之ProcessThread和Module
- mac版本webstorm设置编译后的scss文件输出路径
- 读写锁 share_mutex
- OracleLinux的MTU问题
- 基本含概PHP+mysql所有方方面面的面试题,针对性模块性复习,高薪面试必过
- js中forEach、map
- MySQL的安装(详细图解)
- 利用Console来调试JS程序、Console用法总结
- redis之 centos 6.7 下安装 redis-3.2.5