CEF3研究(一)

一、基本概览
  1. C++ Wrapper
    C++Wrapper(包装类)就是将C结构包装C++类。 这是C/C++API转换层通过translator tool自动产生的。
  2. 进程
    CEF3用多进程运行。     
  1. 主(浏览)进程 ——处理窗口创建,绘制和网络访问,会产生相同的进程作为主应用程序,及处理主应用程序的逻辑。
  2. 渲染进程——处理闪烁渲染和JavaScript的执行,也处理一些应用程序逻辑,如JavaScript绑定和DOM的访问。
  3. scheme + domain进程——默认的进程模型的渲染进程。每个进程有唯一的源
  4. 其他进程,如插件进程、gpu处理,是按需要产生的。
     默认的主应用程序可执行文件会分多次产生独立进程,这是通知command-line 标识传递给CefExecuteProcess函数。如果主应用程序执行大加载任务非常耗时,或是其他不适合在非浏览进程的任务可分多少可执行文件在其他程序中。这可通过 CefSettings.browser_subprocess_path 进行配置
     由CEF3产生的进程用IPC进行通信,浏览进程和渲染进程的应用逻辑通信是通过来回异步发送消息。而在渲染进程中JavaScript的通信是调用异步ap

 3. 线程

     在CEF3中每个进程以多线程运行。  cef_thread_id_t枚举定义了所有线程列表。浏览进程包含4个线程:
  1. TID_UI 是浏览进程的主线程,如果主应用程序线程调用  CefInitialize()以CefSettings.multi_threaded_message_loop = false调用,那么主应用程序线程也是TID_UI.
  2. TID_IO 在浏览进程中用于处理进程IPC和网络消息。
  3. TID_FILE在浏览进程中用于与文件系统交互
  4. TID_RENDERER在渲染进程的主线程
     由于CEF本身是多线程,在线程中需要对访问的数据和传递的消息进行加锁。CEF3提供Lock和Unlock方法进行加锁,AutoLock块对象对代码进行同步访问。
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值