多執行緒瀏覽器

多執行緒程式要比單執行緒程式更難於編寫,並且不加選擇地使用執行緒也是導致難以找到細小錯誤的重要原因。

所謂的多執行緒瀏覽器,通常是指UI 多執行緒。
UI多執行緒定義:
Windows 窗體中最重要的一條執行緒規則:除了極少數的例外情況,否則都不要在它的創建執行緒以外的執行緒中使用控制項的任何成員。規則的結果是一個被包含的控制項,如包含在一個表單中的按鈕必須與包含它控制項位處於同一個執行緒中。也就是說,一個視窗中的所有控制項屬於同一個 UI 執行緒。大部分 Windows 窗體應用程式最終都只有一個執行緒,所有 UI 活動都發生在這個執行緒上。這個執行緒通常稱為 UI 執行緒。UI多執行緒最重要的作用是緩解假死。而不是說頁面多執行緒下載下來,提高瀏覽速度。
UI為什麼選擇多執行緒?
這就自然會引出兩個問題:為什麼不堅持編寫單執行緒代碼?如果必須使用多執行緒,如何才能避免缺陷呢?本文的大部分篇幅都是在回答第二個問題,但首先我要來解釋一下為什麼確實需要多執行緒。
多執行緒處理可以使您能夠通過確保程式“永不睡眠”從而保持 UI 的快速回響。大部分程式都有不回響用戶的時候:它們正忙於為您執行某些操作以便回響進一步的請求。也許最廣為人知的例子就是出現在“打開檔案”對話框頂部的組合框。如果在展開該組合框時,CD-ROM驅動器里恰好有一張光碟,則計算機通常會在顯示列表之前先讀取光碟。這可能需要幾秒鐘的時間,在此期間,程式既不回響任何輸入,也不允許取消該操作,尤其是在確實並不打算使用光碟機的時候,這種情況會讓人無法忍受。
執行這種操作期間 UI 凍結的原因在於,UI 是個單執行緒程式,單執行緒不可能在等待 CD-ROM驅動器讀取操作的同時處理用戶輸入。“打開檔案”對話框會調用某些阻塞 (blocking) API 來確定 CD-ROM 的標題。阻塞 API 在未完成自己的工作之前不會返回,因此這期間它會阻止執行緒做其他事情。
而多執行緒程式會讓那些容易阻塞的操作單獨開闢一個執行緒來處理,即使這個執行緒阻塞了,也不會影響主界面執行緒的及時回響,提高了用戶體驗。
——
目前的多執行緒瀏覽器漸漸多起來,有微軟IE7采編讀瀏覽器世界之窗瀏覽器搜狗瀏覽器TT瀏覽器,Fast Browser Pro 7.0解版等。

相關詞條

相關搜尋

熱門詞條

聯絡我們