最近開始看《
win32
多執行緒程式設計》
,感覺受益匪淺,寫出來的目的有兩個;一是想看看自己理解的程度,能否總結出作者真正想表達的內容。
2是與大家共享。好了,廢話就不說那麼多了!
文章開始講述了作業系統的演化,作者從早期的
ms-dos1.0
版本單任務系統到
2.x的可以允許常駐程式(
tsr),但是
ms-dos
視其為自己的一部分,不是乙個應用程式或是乙個程序。隨後提及到了擁有合作型多工及搶占式多工機制的
windows
的不同版本! ?
faq01
:合作型多工與搶占式多工有什麼不同
---------
合作型多工的意思就是說分享
cpu是程式的責任,而不是系統的責任,如果有乙個程式決定咬住
cpu不放,其他程式就沒有辦法得到執行。搶占式多工的意思就是作業系統能夠強迫應用程式把
cpu分享給其他人,程式設計師不需要額外的努力!
下面介紹
2個概念,讓我們對程序與執行緒有乙個大體的了解: 程序
---從
win32
的角度看,程序含有記憶體和資源。資源包括核心物件(如
file handles
和執行緒),
user
資源(如對話方塊和字串),
gdi資源等。程序本身不可以執行,他只是提供乙個安置記憶體和執行緒的地方。 記憶體
-------
每乙個程序都關係到記憶體。大致分為3類
code data stack .
code---
程式的可執行部分,一定是唯讀性質。這是
cpu唯一可以執行的記憶體。
data
是你的程式中所有變數,可以區分為全域性變數和靜態變數兩種。也可以使用
malloc
和new
動態配置記憶體。
stack
是你呼叫函式時所用的堆疊空間,其中有區域性變數。每個執行緒產生時配有乙個堆疊。如果不需要,作業系統會將其動態擴充。所有的記憶體對程序中的執行緒都是可用的
win32多執行緒程式設計
使用3個執行緒完成6個任務,工作的執行是靠呼叫sleep 來模擬,時間長度是隨機給予的,只要乙個執行緒結束,就會有另乙個執行緒被產生。taskques.cpp 定義控制台應用程式的入口點。include stdafx.h include include include define win32 le...
Win32 多執行緒程式設計
程序和執行緒都是作業系統的概念 程序是應用程式的執行例項 每個程序是由私有的虛擬位址空間 資料和其它各種系統資源組成 程序在執行過程中建立的資源隨著程序的終止而被銷毀 所使用的系統資源在程序終止時被釋放或關閉 執行緒是程序內部的乙個執行單元 系統建立好程序後 實際上就啟動執行了該程序的主執行執行緒 ...
讀書筆記 Win32多執行緒程式設計 1
很早就想系統的看看多執行緒方面的書籍,逮到機會 1。多執行緒的簡單定義 使程式得以將其工作分開,獨立運作,不互相影響。2。多執行緒的最眾所周知的應用場景 執行大量操作是,ui死掉。3。執行緒歷史 dos 單程序單執行緒,tsr實際並不是多執行緒,tsr只是可以將程式看作是系統的一部分。但是,如果格式...