爲什麼需要多線程編程模型


首先,我們需要多線程的主要原因是:在許多應用中會同時發生多種活動,某些活動會隨着時間的推移被阻塞,通過將這些應用程序分解成可以準並行運行的多個順序線程,程序設計模型會變得簡單起來。

這裏可以說加入了一個新的元素:並行實體共享同一個地址空間和所有可用數據的能力。對於某些應用而言,這種能力是必須的,而這正是多進程模型(它們具有不同的地址空間)無法表達的。


第二個需要多線程的理由是,由於線程比進程更輕量級,所以它們更容易(更快)創建和撤銷。在一般情況下,創建一個線程比創建一個進程要快上10-100倍。在有大量線程需要動態和快速修改時,具有這一特性是非常重要的。


第三個需要多線程的理由是,關於性能方面的,若多個線程都是CPU密集型的,那麼多線程並不能很明顯的體現出它的性能的提升,但是在一些需要大量I/O處理和大量計算的情況下,擁有多線程允許這些活動彼此重疊進行,對程序性能的提升是非常明顯的。


最後,在多CPU系統中,多線程是有益的,在這樣的系統中,可以真正實現物理上的多線程並行運行。


線程概念試圖實現的是:共享一組資源的多個線程的執行能力,以便這些線程可以爲完成某項任務而共同工作。

進程用於將資源集中在一起,而線程則是在CPU上被調度的實體。




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