如何構建CEF多程序模式

2021-08-29 02:40:46 字數 1242 閱讀 2457

cef是乙個瀏覽器控制項,進一步說是多組介面集合。嵌入cef就是實現基於介面的二次開發。但這些介面又比較特殊,因為是開源的,所以可以跟蹤、除錯、甚至根據自己的需要進行定製、修改。

介面就不做介紹了。下面就從專案由淺入深引入的cef模組,分塊做一下介紹。

cef的多程序模式

如果把cef結構大致分一下,會分出三大塊來,browser、render、其他。cef也支援單程序模式,可以通過設定資訊修改。預設多程序模式。其中browser模組主要處理ui部分、render部分主要做js解釋執行、dom結構解析,其他模組非必須,比如gpu加速渲染、第三方外掛程式等。

管理多個程序

這裡找不到乙個合適的詞,只能暫時用管理,其實不是管理,更貼切說是多程序的入口建立。先看一下cef原始碼提供的demo。cef******實現了browser的介面,render使用預設行為

單程序模式

可以通過引數進行設定,我試著使用了單程序,但一直無法除錯,可能需要額外的pdb資訊,時間緊迫也沒時間做更多嘗試。瀏覽器設定資訊如下

// specify cef global settings here.

cefsettings settings;

#if !defined(cef_use_sandbox)

settings.no_sandbox = true;

#endif

cefsettingstraits::init(&settings);

//這個設定能實現單程序執行cef瀏覽器外掛程式,我們實際應用中採用的是雙程序模式,即乙個主程序,乙個render渲染程序  

= true;

= true;  

//設定渲染程序的名稱,因為在相同目錄下,沒有指定路徑  

//cefstring(&settings.browser_subprocess_path).fromwstring(l"render.exe");

//禁用cef的訊息迴圈,採用duilib的訊息迴圈  

= true;

//設定本地語言  

//cefstring(&settings.locale).fromwstring(l"zh-cn");

//快取資料路徑  

//cefstring(&settings.cache_path).fromwstring(cache_path);

//debug日誌路徑  

//cefstring(&settings.log_file).fromwstring(log_file);

多程序 如何使用多程序處理多個任務

以下 用以建立兩個子程序處理任務,通過基本的 框架講解如何使用fork建立很明確的子程序處理任務。int groupcount 2 char ptaskgroup 2 pid t pid 1 for int i 0 i groupcount i else parent process if pid ...

多程序模式執行Jexus

本文內容來自 jexus web server執行於多程序模式時需要注意的事項 預設情況下,jexus web server是以單程序模式執行的,當修改jws.config配置檔案,把工作程序數量設定為大於1的數字時,jws就會按指定的數量以多程序的方式併發工作。多程序模式執行jexus就相當於ii...

多程序模式執行Jexus

本文內容來自 jexus web server執行於多程序模式時需要注意的事項 預設情況下,jexus web server是以單程序模式執行的,當修改jws.config配置檔案,把工作程序數量設定為大於1的數字時,jws就會按指定的數量以多程序的方式併發工作。多程序模式執行jexus就相當於ii...