.NET多線程編程(1):多任務和多線程
2007/1/5 17:37:45
在.NET多線程編程這個系列我們講一起來探討多線程編程的各個方面。首先我將在本篇文章的開始向大家介紹多線程的有關概念以及多線程編程的基礎知識;在接下來的文章中,我將逐一講述。NET平臺上多線程編程的知識,諸如System.Threading命名空間的重要類以及方法,并就一些例子程序來作說明。



引言



早期的計算硬件十分復雜,但是操作系統執行的功能確十分的簡單。那個時候的操作系統在任一時間點只能執行一個任務,也就是同一時間只能執行一個程序。多個任務的執行必須得輪流執行,在系統里面進行排隊等候。由于計算機的發展,要求系統功能越來越強大,這個時候出現了分時操作的概念:每個運行的程序占有一定的處理機時間,當這個占有時間結束后,在等待隊列等待處理器資源的下一個程序就開始投入運行。注意這里的程序在占有一定的處理器時間后并沒有運行完畢,可能需要再一次或多次分配處理器時間。那么從這里可以看出,這樣的執行方式顯然是多個程序的并行執行,但是在宏觀上,我們感覺到多個任務是同時執行的,因此多任務的概念就誕生了。每個運行的程序都有自己的內存空間,自己的堆棧和環境變量設置。每一個程序對應一個進程,代表著執行一個大的任務。一個進程可以啟動另外一個進程,這個被啟動的進程稱為子進程。父進程和子進程的執行只有邏輯上的先后關系,并沒有其他的關系,也就是說他們的執行是獨立的。但是,可能一個大的程序(代表著一個大的任務),可以分割成很多的小任務,為了功能上的需要也有可能是為了加快運行的速度,可能需要同一時間執行多個任務(每個任務分配一個多線程來執行相應的任務)。舉個例子來說,你正在通過你的web瀏覽器查看一些精彩的文章,你需要把好的文章給下載下來,可能有些非常精彩的文章你需要收藏起來,你就用你的打印機打印這些在線的文章。在這里,瀏覽器一邊下載HTML格式的文章,一邊還要打印文章。這就是一個程序同時執行多個任務,每個任務分配一個線程來完成。因此我們可以看出一個程序同時執行多個任務的能力是通過多線程來實現的。



多線程VS多任務



正如上面所說的,多任務是相對與操作系統而言,指的是同一時間執行多個程序的能力,雖然這么說,但是實際上在只有一個CPU的條件下不可能同時執行兩個以上的程序。CPU在程序之間做高速的切換,使得所有的程序在很短的時間之內可以得到更小的CPU時間,這樣從用戶的角度來看就好象是同時在執行多個程序。多線程相對于操作系統而言,指的是可以同時執行同一個程序的不同部分的能力,每個執行的部分被成為線程。所以在編寫應用程序時,我們必須得很好的設計以 避免不同的線程執行時的相互干擾。這樣有助于我們設計健壯的程序,使得我們可以在隨時需要的時候添加線程。



線程的概念



線程可以被描述為一個微進程,它擁有起點,執行的順序系列和一個終點。它負責維護自己的堆棧,這些堆棧用于異常處理,優先級調度和其他一些系統重新恢復線程執行時需要的信息。從這個概念看來,好像線程與進程沒有任何的區別,實際上線程與進程是肯定有區別的:

一個完整的進程擁有自己獨立的內存空間和數據,但是同一個進程內的線程是共享內存空間和數據的。一個進程對應著一段程序,它是由一些在同一個程序里面獨立的同時的運行的線程組成的。線程有時也被稱為并行運行在程序里的輕量級進程,線程被稱為是輕量級進程是因為它的運行依賴與進程提供的上下文環境,并且使用的是進程的資源。

在一個進程里,線程的調度有搶占式或者非搶占的模式。

在搶占模式下,操作系統負責分配CPU時間給各個進程,一旦當前的進程使用完分配給自己的CPU時間,操作系統將決定下一個占用CPU時間的是哪一個線程。因此操作系統將定期的中斷當前正在執行的線程,將CPU分配給在

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 久久国产免费福利永久| 在车里被撞了八次高c| 亚洲人成在线影院| 男女一进一出猛进式抽搐视频| 国内精品一战二战| 两个人看的www在线| 欧美精品一区二区精品久久| 午夜国产福利在线| 蜜臀AV在线播放| 国产成人精品一区二区三区| 2020国语对白露脸| 扁豆传媒视频免费观看| 九九精品国产亚洲AV日韩| 欧美疯狂ⅹbbbb另类| 人人澡人人澡人人看添av| 精品国产麻豆免费人成网站| 国产九九视频在线观看| 黑白配hd视频| 天天摸一摸视频寡妇| 中文在线观看永久免费| 日本伊人色综合网| 久热这里有精品| 男女交性高清全过程无遮挡| 哇嘎在线观看电影| 色妞视频资源在线观看| 国产在线步兵一区二区三区| 色一情一乱一乱91av| 国产精品毛多多水多| 98久久人妻无码精品系列蜜桃| 女人张开腿让男人桶免费网站| 中文字幕2020| 攵女yin乱合集小丹| 久久亚洲精精品中文字幕| 波多野结衣电影一区二区| 全黄裸片一29分钟免费真人版| 日本丰满www色| 国产精品无码无片在线观看| 91视频免费网址| 国语自产精品视频在线区| baoyu116.永久免费视频| 日本护士handjob|