實例解析C++/CLI線程之多任務

簡介

  從處理器的角度來看,線程是一個單獨的執行流程,每個線程都有各自的寄存器及堆棧上下文。通常來說,在系統中只有一個處理器或處理器只有一個核心時,運行時環境在一個時間片內只能執行一個線程,當線程未能獲取所需的資源時,線程的執行就會被中斷,且會一直等到相關操作的完成,如I/O;或者在線程用完它的處理器時間片時,也會被中斷下來等待。而處理器把執行流程從一個線程切換到另一個線程時,這稱爲"上下文切換";當某個線程變爲"阻塞"狀態,從而執行另一個線程時,系統有效地減少了處理器空閒時間,這稱爲"多任務"。

  當程序執行時,系統知道可以從磁盤上某處獲取相關的指令及靜態數據,程序會被分配到一組包含虛擬內存在內的地址空間,這個運行時上下文被稱爲"進程"。然而,在一個進程可以運行之前,它必須擁有至少一個線程,也就是說,當一個進程被創建時,它自動被賦予了一個線程,這稱爲"主線程"。但是話說回來,這個線程與之後這個進程所創建的線程相比,沒有任何不同之處,它只不過恰好是這個進程的第一個線程而已。一般來說,在程序的控制之下,進程內的線程數在運行時會有所變化,任何線程都可以創建其他的線程,但不管怎樣,線程不擁有它所創建的線程,所有進程內的線程都是作爲一個整體屬於這個進程。

全文閱讀:
http://dev.yesky.com/msdn/290/2589790.shtml

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章