久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

淺議Visual C++多線程設計...

 昵稱15907169 2014-07-25
隨著Windows操作系統(tǒng)的發(fā)展,Windows95
  和WindowsNT
  操作系統(tǒng)開始支持多任務的調(diào)度和處理,?;诖耍渌峁┑亩嗳蝿湛臻g使程序員可以完全控制應用程序中細節(jié)的運行,,從而編寫高效率的應用程序,。
  多任務的實現(xiàn)基于兩方面,即多進程和多線程,。所謂進程是指在系統(tǒng)中正在運行的一個應用程序,,而線程是系統(tǒng)分配處理器時間資源的基本單元,也可講是進程之內(nèi)獨立執(zhí)行的一個單元,。利用多線程技術,,在VC++環(huán)境下使一個進程從主線程的執(zhí)行開始進而創(chuàng)建一個或多個附加線程,達到多線程多任務的實現(xiàn),。
  2
  多線程及其設計思路
  在Windows操作系統(tǒng)中,,Win32應用程序可以在Windows平臺上運行多個實例,每個應用程序實例都是一個獨立的進程,,而一個進程可以由不止一個線程來實現(xiàn),。與Win16應用程序的協(xié)同多任務方式不同,Win32應用程序組采取的是搶占式多任務方式,,即同時執(zhí)行多個進程和多個線程,。線程具體講是一個代碼單元,在操作系統(tǒng)中運行是標志著代碼運行流,。
  每個進程都有私有的虛擬地址空間,,進程的所有線程共享同一地址空間。每個線程被CPU分配一個時間片,,一旦被激活,,它正常運行直到時間片耗盡并被掛起,此時,,操作系統(tǒng)選擇另一個線程進行運行,。通過時間片輪轉,又出于各個時間片很小(20毫秒級),,看起來就像多個線程同時在工作,。實際上,只有在多處理器系統(tǒng)上才是真正的在可得到的處理器上同時運行多個線程,?;赪in32的應用程序可以通過把給定進程分解(或創(chuàng)建)多個線程挖掘潛在的CPU時間,,而且還可以加強應用程序,,以使用戶提高效率,,加強反應能力以及進行后臺輔助處理。
  對于一個進程來說,,當應用程序有幾個任務要同時運行時,,建立多個線程是有用的。如打印時,,利用多線程機制實現(xiàn)多線程,,就可在需要打印時創(chuàng)建一個負責完成打印功能的打印線程。創(chuàng)建打印線程之后,,系統(tǒng)就變成了多線程,。當進行打印時,,CPU輪換著分配給這兩個線程時間片,,所以打印和其他功能一起同時在運行,這就充分利用了CPU處理打印工作之外的空閑時間片,,并且避免了用戶長久地等待打印時間,。這就是所謂的由多線程來實現(xiàn)的多任務,在進行打印任務的同時又可以進行別的任務,。
  在VC中利用MFC編程時,,線程被分為工作者線程(Worker
  Thread)和用戶界面線程(User Interface
  Thread)兩大類。前者常用于處理后臺任務,,執(zhí)行這些后臺任務并不會耽擱用戶對應用程序的使用,,即用戶操作無需等待后臺任務的完成。后者常用來獨立的處理用戶輸入和相應用戶的事件,。其中用戶界面線程的特點是擁有單獨的消息隊列,,可以具有自己的窗口界面,能夠對用戶輸入和事件做出響應,。在應用程序中,,根據(jù)用戶界面線程具有消息隊列這一特點,可以使之循環(huán)等待某一事件發(fā)生后再進行處理,。由于Windows95時搶先式多任務的操作系統(tǒng),,即使一個線程因等待某事件而阻塞,其他線程仍然可以繼續(xù)執(zhí)行,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多