fkjava

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            49 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

          多線程編程是現(xiàn)代軟件技術(shù)中很重要的一個環(huán)節(jié)。要弄懂多線程,這就要牽涉到多進(jìn)程?當(dāng)然,要了解到多進(jìn)程,就要涉及到操作系統(tǒng)。不過大家也不要緊張,聽我慢慢道來。這其中的環(huán)節(jié)其實并不復(fù)雜。

          (1)單CPU下的多線程

          在沒有出現(xiàn)多核CPU之前,我們的計算資源是唯一的。那么如果系統(tǒng)中有多個任務(wù)要處理的話,那么就需要按照某種規(guī)則依次調(diào)度這些任務(wù)進(jìn)行處理。什么規(guī)則呢?可以是一些簡單的調(diào)度方法,比如說

          1)按照優(yōu)先級調(diào)度

          2)按照FIFO調(diào)度

          3)按照時間片調(diào)度等等

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

          (2)多核CPU下的多線程

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

          (3)多線程編程

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

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

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

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

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

          轉(zhuǎn)自:瘋狂軟件

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 江孜县| 宾川县| 年辖:市辖区| 通海县| 灯塔市| 木里| 梧州市| 南雄市| 灵璧县| 香港| 通河县| 集安市| 鹿邑县| 沙田区| 柯坪县| 赤水市| 邯郸市| 马公市| 德昌县| 美姑县| 松阳县| 通河县| 中山市| 巫山县| 吴江市| 行唐县| 都匀市| 宝应县| 德庆县| 吉林市| 习水县| 新和县| 康平县| 郁南县| 阳朔县| 贵港市| 威远县| 西宁市| 陇西县| 永靖县| 潞西市|