chromium之MessageLoop浅析
对chromium的MessageLoop非常感兴趣,接下来会详细分析Windows平台的具体实现。
代码版本:chromium-4.0.210.0_p26329
先看一下依赖的文件
message_loop.cc
#include "base/message_loop.h" #include <algorithm> #include "base/compiler_specific.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/message_pump_default.h"
#include "base/string_util.h"
#include "base/thread_local.h"
message_loop.h
#include <queue>
#include <string> #include "base/histogram.h"
#include "base/message_pump.h"
#include "base/observer_list.h"
#include "base/ref_counted.h"
#include "base/scoped_ptr.h"
#include "base/task.h" #if defined(OS_WIN)
// We need this to declare base::MessagePumpWin::Dispatcher, which we should
// really just eliminate.
#include "base/message_pump_win.h"
#elif defined(OS_POSIX)
#include "base/message_pump_libevent.h"
#endif
#if defined(OS_LINUX)
#include "base/message_pump_glib.h"
#endif
引用的头文件一多,一看就很复杂。
方便起见,从message_loop.h的第一个头文件开始,一路分析。
第一个文件
#include "base/histogram.h"
参考分析chromium之histogram.h,直方图是程序输出统计信息的一个功能
下一个文件
#include "base/observer_list.h"
参考分析chromium之observer_list,观察者模式
下一个文件
#include "base/ref_counted.h"
参考分析chromium之ref_counted,引用计数,可以手动控制对象的生命周期
下一个文件
#include "base/scoped_ptr.h"
参考分析chromium之scoped_ptr,局部指针可以用于内存的自动释放,离开作用域后,对象的生命周期也结束
下一个文件
#include "base/task.h"
参考分析chromium之task,任务,要执行的某一个功能
下一个文件
#include "base/message_pump_win.h"
接下来看看message_loop.cc的引用的头文件
#include "base/compiler_specific.h"
下一个文件
#include "base/lazy_instance.h"
下一个文件
#include "base/message_pump_default.h"
下一个文件
#include "base/thread_local.h"
chromium之MessageLoop浅析的更多相关文章
- chromium之ScopedNSAutoreleasePool浅析
上代码,看看注释 ScopedNSAutoreleasePool只有Mac系统特有的,也可以理解为OC特有的函数, 其他系统为空实现 // On the Mac, ScopedNSAutorele ...
- Chromium on Android: Android在系统Chromium为了实现主消息循环分析
总结:刚开始接触一个Chromium on Android时间.很好奇Chromium主消息循环是如何整合Android应用. 为Android计划,一旦启动,主线程将具有Java消息层循环处理系统事 ...
- jQuery 3.0 的 Data 浅析
jQuery 3.0 在6月9日正式发布了,3.0 也被称为下一代的 jQuery .这个版本从14年10月开始,其中发布过一次beta 版(2016/1/14,)和候选版(2016/05/20).一 ...
- 浏览器-02 Chromium的多线程
Chromium 的多线程机制 概述 每个进程都有很多的线程; 多线程主要是为了保证UI线程(chrome 线程,主线程)不会被任何其它费时的操作阻碍而影响对用户的响应; 为了解决多线程通信和同步问题 ...
- 初识chromium thread的实现
接触chromium已有一段时间,写点东西学习一下吧. 首先说一下用法,如何利用chromium封装好的thread类来开一个线程.在base里有一个封装该类的头文件thread.h,include它 ...
- 【Chromium中文文档】线程
线程 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Threading. ...
- 1.4. chromium源代码分析 - chromiumframe - 消息系列
Message framework 是对消息循环的封装和扩展,Chromium在消息循环中增加处理内部任务的工作.将内部工作处理寄生在Windows的消息循环中,会有一个问题,就是没有Windows自 ...
- 1.3. chromium源代码分析 - chromiumframe - 窗口系列
在_tWinMain中有这样两条语句: MainWindowDelegate delegate; view::Window::CreateNativeWindow(NULL, gfx::Rect(), ...
- 1.2. chromium源代码分析 - chromiumframe - 入口函数
ChromiumFrame的入口函数在main.cpp中,打开main.cpp.中包含3个类和_tWinMain函数._tWinMain就是我们要找的入口函数.我做了部分注释: int APIENTR ...
随机推荐
- UX基础 - OmniGraffle新手指南
原文地址:http://beforweb.com/node/202,大半夜找到,作为使用手册 我发现一事儿,就是最近这些年,每到入职一个新公司的时候,听得东西往往会比多数时候听得更重更金属些,此时以S ...
- Maven 安装 eclispe
-Dmaven.multiModuleProjectDirectory=$M2_HOME
- sql server2008安装时提示重启计算机失败怎么办?
在键盘上按下组合键[Win]+[R],调出运行窗口. 在窗口中输入“regedit”,点击确定,打开注册表管理界面. 在注册表左侧目录栏中找到如下位置:“HKEY_LOCAL_MACHINE\SYST ...
- 获取表SQLSERVER 的表结构信息(字段名,长度,精度,类型,NULL,ID,PRI)
select sys.columns.name, sys.types.name, sys.columns.precision,sys.columns.scale, sys.columns.is_nul ...
- August 10th 2017 Week 32nd Thursday
Break through the psychological barrier to surpass themselves. 突破心理障碍,才能超越自己. To break through those ...
- December 19th 2016 Week 52nd Sunday
Truth and roses have thorns about them. 真理和玫瑰,身边都有刺. Either truth or roses, they all have thorns aro ...
- 求最长公共子串 Longest Common Subsequence
最长公共子串 // Longest Common Subsequence 子串有别于子序列, 子串是连续的, 而子序列可以不连续 /*--------------------------------- ...
- 验证 Xcode是否有效方法
苹果给出了验证 Xcode 的方法,需要用户在终端中执行下面的命令: spctl --assess --verbose /Applications/Xcode.app 如果 Xcode 从 Mac A ...
- 激活pycharm
1. 修改hosts文件: 添加下面一行到hosts文件,目的是屏蔽掉Pycharm对激活码的验证**0.0.0.0 account.jetbrains.com ** windwos系统hosts文件 ...
- 【金融123】CNY和CNH的差异和关联
https://www.sohu.com/a/117406459_473263 离岸人民币(CNH)与在岸人民币(CNY) 差异: CNY CNH 法律监管限制 在岸人民币受大陆市场的管制,外汇和 ...