Chromium源码浅析 --- Chromium的多线程机制
Chromium是一个多进程架构,里面包含Browser进程,Render进程和GPU进程等等,而在每个进程中又包含有丰富的线程,特别是在Browser进程中,由于Browser进程是其他所有进程的总管,负责的任务具备多样性和复杂性,比如响应用户的输入,与Render进程和GPU进程通信,打开或读取各种文件设备操作等等。如果把这些任务统统放在一个线程中去实现,就不能很好的发挥CPU多核的功能,另外,又会影响到用户界面的响应速度,这个会直接带给用户极差的用户体验。
基于以上考虑,Chromium除了采用多进程架构外,在每个进程中也引入了多线程。下面列举了Browser进程中常用的线程:
UI线程,该线程是程序运行的主线程,也是程序的入口点,用来监听用户的输入,并及时的给出响应。UI线程不能被阻塞,否则浏览器的界面就会停住,得不到任何响应。如果在该线程中有一些耗时的任务比如文件读写等需要处理,就发送任务给其他相应线程去执行,等到执行完毕后,把得到的结果发送回来即可。这就保证了浏览器每时每刻都能对用户的UI操作给予响应,从我们使用来看,相比其他浏览器,Chrome浏览器的界面响应速度应该是最快的。
IO线程,它的主要作用是负责与其他进程进行进程间通信(IPC),和负责下载Render进程需要的某些资源文件。
File线程,顾名思义,该线程负责各种文件的读写,比如保存下载的文件到磁盘上,从磁盘上读取缓存文件等等。
数据库线程,该线程主要进行数据库操作,Chromium中引进了数据库来保存某些数据,例如Cookies.
除了上述线程外,还存在一些其他的线程,比如历史记录线程,Http服务代理线程等等。
>更多相关文章
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御