今天早晨上班的路上突然想到chromium的多程序實現,我們分析可以知道,
chrome介面上面你看到的所有所有視窗都是在同乙個主程序裡面建立的,但是tab對應的網頁的渲染卻不是在這個程序裡面做的。
我突然想到了另外一種實現,我們每天對著的windows自己的視窗:比如資源管理器,工作列都是在explorer.exe中生成的,但是每當我們新建出乙個程序的時候工作列(也就是在exploer.exe的乙個視窗中)會在增加乙個tab,而在非工作列區域新建新程序的視窗,chrome跟這個其實就很類似了,但是兩種實現方式卻不同,因為在chrome中你所見到的視窗都在同乙個程序中,很顯然你看到的windows視窗實現的肯定不都是乙個程序裡面,雖然他們看起來是擁有父子關係的視窗。接下來我想到了ie8以後的版本就是多程序瀏覽器,去看了看發現實現方式跟windows類似,也就是驗證我說的這種實現方式的可行性,為什麼chromium當初不這麼做呢?跟chrome跨平台有關係嗎?現在我還不清楚,後面再研究研究吧,不過這樣做在windows下面絕對可行。
windows這種實現方式去實現瀏覽器的好處:
1. 多程序的程式便於釋放記憶體
2. 國內大量瀏覽器做了防假死,如果實現了上面說的這個方法,完全沒有必要做,主視窗永遠不會因為網頁視窗被卡死而假死,因為它們在不同的程序裡面,但是假死的視窗體驗體驗依然很糟糕,chrome不會出現這種糟糕的體驗。
後面嘗試一把,做乙個多程序框架程式。
linux下多程序服務框架
使用者只需要在程式最下面修改handle connection函式,在裡面實現對客戶請求的處理邏輯即可,訊號處理及程序組控制都由框架完成。在rhes 3 2.4kernel和debian etch 2.6kernel下測試通過。歡迎指正。include include include include...
多程序 多程序queue
多程序 import multiprocessing import threading import time defthread run print threading.get ident defrun name time.sleep 2 print hello name t threading....
python多程序 python多程序
當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...