816
技術社區[雲棲]
Windws OS 一些概念
Windows OS 一些概念
1.並發與並行
答:並行是多個線程同時進行;
並發是多個線程在同一時間段內進行。
並行優於並發。
2.同步、互斥與異步 阻塞、非阻塞
1.函數調用
同步是函數執行完畢才返回,絕大多數函數都是這樣的;
異步是函數開始執行時就返回,自己的執行仍在繼續,本質是多線程。
2.線程調度
同步:各線程間有明確的次序關係。
互斥:臨界資源某一時刻隻能被一個線程訪問。
3.通信
同步:以數據塊為單位發送。
異步:以字符為單位發送。
4.阻塞、非阻塞
阻塞是指函數調用結果返回之前,當前線程會被掛起。
非阻塞與之相對,函數調用結果返回之前,當前線程還會繼續處理各種各樣的消息。
我的疑問:代碼語句都是順序執行的,既然沒有返回,當前線程是不是激活又有什麼區別呢?
3.句柄
句柄:本質是整數,用來標識(biao zhi)窗口、菜單、線程、資源等對象。可以看做特殊的指針,指向操作係統的內核對象。Windows OS是不開源的,這樣也可以隱藏內部細節。
4.編碼
在簡體中文係統下,ANSI 編碼代表 GB2312 編碼。
5.Win32 API 與 MFC
API,Application Program Interface,應用程序接口。程序員可以安全、恰當地與Windows 內核交互。
MFC,Microsoft Foundation Class,微軟基礎類庫。是對API的封裝,目的在於簡化編程。
API是用C語言編寫的,MFC是C++。二者之間不要混用。以線程類為例,說明差異。
MFC將Windows線程分為兩類:一類是用於人機交互、處理用戶輸入的線程,稱為用戶界麵線程(User-Interface Threads);另一類是完成不需要用戶幹預的或後台執行的操作,稱為工作者線程或輔助線程(Worker Threads)。
但對於Windows API來說,它沒有用戶界麵線程和工作者線程之分,將二者等同處理,統稱為線程。
6.其他
COM,Component Object Model,組件對象模型。實現二進製層次上的代碼重用。
ADO,ActiveX Data Objects,ActiveX數據對象。用於訪問數據庫。
ActiveX 控件是作用於web頁麵的小程序。它們會允許播放動畫,或幫助執行任務。一些網站會要求您安裝 ActiveX 控件,才能看得到該網站或執行網站上的某些任務。訪問此類網站時,Windows Internet Explorer 會提示您是否希望安裝 ActiveX 控件。
ActiveX是Microsoft為抗衡Sun Micro systems的JAVA技術而提出的,此控件的功能和java applet功能類似。
GDI,Graphics Device Interface,圖形設備接口,負責Windows程序圖形輸出。
Direct X,由微軟公司創建的多媒體編程接口。由C++編程語言實現,遵循COM。
DirectX是由很多API組成的,按照性質分類,可以分為四大部分,顯示部分、聲音部分、輸入部分和網絡部分。GDI與Direct X圖形部分的區別? 前者操作內存,後者可直接操作顯存,後者性能高。
最後更新:2017-04-03 12:56:25