chromium源码分析(三)

本文深入探讨Chromium的Mojo IPC机制,解释了多进程架构的优势,如防止因线程崩溃影响整个浏览器。Mojo IPC包括消息类型(routed和control)、MessageChannel的创建以及发送者和接收者的角色。Mojo提供了线程安全和高性能的进程间通信,被广泛用于Chromium。ChannelProxy作为消息代理,负责发送和接收工作。

本节主要讲mojo  IPC进程通信机制。

Chromium默认采用多进程架构,当然,chromium也有singe-process的版本。如果是多线程架构,一个线程崩溃,影响了整个浏览器的使用,因为在现在的网页标准更新了很多个版本,会有不同标准的页面在网络上,极大可能出现解析,渲染,插件等问题,那么对于用户来说,体验就会差很多了,浏览一个页面出问题,就要重启浏览器。而多进程则可以避免此问题,render进程崩溃只会影响当前的tab。

                                                   mojo进程通信

进程通信的本质(四个因素):

         1、发那些消息(Message Type)

         2、消息通道是怎么建立的 (Message Channel)

         3、发送者(Sender)

         4、接收者(Listener)

一、 Message Type 

     主要分为两类:“routed” 和 “control”。

     1、routed消息

         主要是用来给某个RenderViewHost对象发送消息的。不过,任何类都可以通过GetNextRoutingID 和 AddRoute 注册,就能接收routed消息。

     2、control消息

          control消息有创建pipe的类处理,当然这些类也可以接收routed消息。比如,请求资源或修改剪贴板不是特定于视图的,所以是控制消息。

     3、消息的声明

 IPC_MESSAGE_ROUTED2(FrameHostMsg_MyMessage, GURL, int)
这个宏用来声明routed消息,这里声明了一个从render进程发送到browser进程的消息,并有一个GURL参
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

步基

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值