fkjava

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            49 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

          多線程編程是現代軟件技術中很重要的一個環節。要弄懂多線程,這就要牽涉到多進程?當然,要了解到多進程,就要涉及到操作系統。不過大家也不要緊張,聽我慢慢道來。這其中的環節其實并不復雜。

          (1)單CPU下的多線程

          在沒有出現多核CPU之前,我們的計算資源是唯一的。那么如果系統中有多個任務要處理的話,那么就需要按照某種規則依次調度這些任務進行處理。什么規則呢?可以是一些簡單的調度方法,比如說

          1)按照優先級調度

          2)按照FIFO調度

          3)按照時間片調度等等

          當然,除了CPU資源之外,系統中還有一些其他的資源需要共享,比如說內存、文件、端口、socket等。既然前面說到系統中的資源是有限的,那么獲取這些資源的最小單元體是什么呢,其實就是進程。

          (2)多核CPU下的多線程

          沒有出現多核之前,我們的CPU實際上是按照某種規則對線程依次進行調度的。在某一個特定的時刻,CPU執行的還是某一個特定的線程。然而,現在有了多核CPU,一切變得不一樣了,因為在某一時刻很有可能確實是n個任務在n個核上運行。我們可以編寫一個簡單的open mp測試一下,如果還是一個核,運行的時間就應該是一樣的。

          (3)多線程編程

          為什么要多線程編程呢?這其中的原因很多,我們可以舉例解決

          1)有的是為了提高運行的速度,比如多核cpu下的多線程

          2)有的是為了提高資源的利用率,比如在網絡環境下下載資源時,時延常常很高,我們可以通過不同的thread從不同的地方獲取資源,這樣可以提高效率

          3)有的為了提供更好的服務,比如說是服務器

          4)其他需要多線程編程的地方等等

          轉自:瘋狂軟件

          posted on 2012-05-12 16:44 瘋狂軟件 閱讀(137) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 图木舒克市| 共和县| 北流市| 明溪县| 安龙县| 巴林左旗| 砀山县| 达拉特旗| 白城市| 兴化市| 城步| 称多县| 诸城市| 霍林郭勒市| 二手房| 师宗县| 福建省| 兰州市| 平原县| 太白县| 青田县| 伽师县| 永丰县| 温泉县| 慈溪市| 珠海市| 安岳县| 侯马市| 南昌市| 惠水县| 洛川县| 孟村| 宣化县| 霍州市| 大名县| 沙湾县| 遵义县| 嵊泗县| 东光县| 简阳市| 仙游县|