![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开源
farrellcn
这个作者很懒,什么都没留下…
展开
-
Google Chrome源码剖析【序】
【序】 开源是口好东西,它让这个充斥着大量工业垃圾代码和教材玩具代码的行业,多了一些艺术气息和美的潜质。它使得每个人,无论你来自米国纽约还是中国铁岭,都有机会站在巨人的肩膀上,如果不能,至少也可以抱一把大腿。。。 现在我就是来抱大腿的,这条粗腿隶属于 Chrome(开源项目名称其实是Chromium,本来Chrome这个名字就够晦涩了,没想到它的本名还更上一层楼…),Google那充满转载 2016-04-07 20:06:29 · 3381 阅读 · 1 评论 -
Google Chrome源码剖析【一】:多线程模型
【一】 Chrome的多线程模型 0. Chrome的并发模型 如果你仔细看了前面的图,对Chrome的线程和进程框架应该有了个基本的了解。Chrome有一个主进程,称为Browser进程,它是老大,管理 Chrome大部分的日常事务;其次,会有很多Renderer进程,它们圈地而治,各管理一组站点的显示和通信(Chrome在宣传中一直宣称一个 tab对应一个进程,其实是很不确切的转载 2016-04-07 20:09:24 · 1839 阅读 · 0 评论 -
Google Chrome源码剖析【二】:进程通信
【二】Chrome的进程间通信 1. Chrome进程通信的基本模式 进程间通信,叫做IPC(Inter-Process Communication),在Chrome不多的文档中,有一篇就是介绍这个的,在这里。Chrome最主要有三类进程,一类是Browser主进程,我们一直尊称它老人家为老大;还有一类是各个Render进程,前面也提过了;另外还有一类一直没说过,是Plugin进程,每转载 2016-04-07 20:10:52 · 1731 阅读 · 0 评论 -
Google Chrome源码剖析【三】:进程模型
【三】 Chrome的进程模型 1. 基本的进程结构 Chrome是一个多进程的架构,不过所有的进程都会由老大,Browser进程来管理,走的是集中化管理的路子。在Browser进程中,有xxxProcessHost,每一个host,都对应着一个Process,比如RenderProcessHost对应着RenderProcess,PluginProcessHost对应着PluginP转载 2016-04-07 20:12:19 · 1325 阅读 · 1 评论 -
Google Chrome源码剖析【四】:UI绘制
【四】Chrome的UI绘制 1. Chrome的窗口控件 Chrome提供了自己的一个UI控件库,相关文档可以参见这里。用Chrome自己的话来说,我觉得市面上的七荤八素的图形控件库都不好用,于是自己倒腾倒腾实现了一套。。。 广告虽如此说,不过,Chrome的图形控件结构,我还未发现有啥非常非常特别的地方。Chrome的窗口、按钮、菜单之类的控件,都直接或间接派生自View,这转载 2016-04-07 20:13:12 · 1866 阅读 · 0 评论 -
Google Chrome源码剖析【五】:插件模型
【五】 Chrome的插件模型 1. NPAPI 为了紧密的与各个开源浏览器团结起来,共同抗击IE的垄断,Chrome的插件,也遵循了NPAPI(Netscape Plugin Application Programming Interface)标准,支持这个标准的浏览器需要实现一组规定的API供插件调用,这组API形如NPN_XXX,比如NPN_GetURL,插件可以利用这些AP转载 2016-04-07 20:14:36 · 1410 阅读 · 0 评论 -
一个著名的日志系统是怎么设计出来的?
一个著名的日志系统是怎么设计出来的? 原创: 老刘 码农翻身 2017-10-23 1前言 Java帝国在诞生之初就提供了集合、线程、IO、网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无意地忽略了一个重要的功能: 输出日志。 对于这一点,IO大臣其实非常清楚, 日志是个很重要的东西, 因为程序运行起来以后, 基本上就是一个黑盒子,如果程序的行为和预料的...转载 2019-07-04 10:46:55 · 667 阅读 · 0 评论