Chromium源码浅析 --- Chromium的多线程机制

浏览:
字体:
发布时间:2013-12-09 23:23:20
来源:

Chromium是一个多进程架构,里面包含Browser进程,Render进程和GPU进程等等,而在每个进程中又包含有丰富的线程,特别是在Browser进程中,由于Browser进程是其他所有进程的总管,负责的任务具备多样性和复杂性,比如响应用户的输入,与Render进程和GPU进程通信,打开或读取各种文件设备操作等等。如果把这些任务统统放在一个线程中去实现,就不能很好的发挥CPU多核的功能,另外,又会影响到用户界面的响应速度,这个会直接带给用户极差的用户体验。

基于以上考虑,Chromium除了采用多进程架构外,在每个进程中也引入了多线程。下面列举了Browser进程中常用的线程:

UI线程,该线程是程序运行的主线程,也是程序的入口点,用来监听用户的输入,并及时的给出响应。UI线程不能被阻塞,否则浏览器的界面就会停住,得不到任何响应。如果在该线程中有一些耗时的任务比如文件读写等需要处理,就发送任务给其他相应线程去执行,等到执行完毕后,把得到的结果发送回来即可。这就保证了浏览器每时每刻都能对用户的UI操作给予响应,从我们使用来看,相比其他浏览器,Chrome浏览器的界面响应速度应该是最快的。

IO线程,它的主要作用是负责与其他进程进行进程间通信(IPC),和负责下载Render进程需要的某些资源文件。

File线程,顾名思义,该线程负责各种文件的读写,比如保存下载的文件到磁盘上,从磁盘上读取缓存文件等等。

数据库线程,该线程主要进行数据库操作,Chromium中引进了数据库来保存某些数据,例如Cookies.

除了上述线程外,还存在一些其他的线程,比如历史记录线程,Http服务代理线程等等。

>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();