中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

.NET 4 并行(多核)編程系列之一入門介紹

  本系列文章將會(huì)對(duì).NET 4中的并行編程技術(shù)(也稱之為多核編程技術(shù))以及應(yīng)用作全面的介紹。

  本篇文章的議題如下:

  1. 并行編程和多線程編程的區(qū)別。

  2. 并行編程技術(shù)的利弊

  3. 何時(shí)采用并行編程

  1.并行編程和多線程編程的區(qū)別。

  1.1并行編程。

   現(xiàn)在隨著多核計(jì)算機(jī)的普及,并行編程技術(shù),也就是多核編程技術(shù)也逐漸稱為開(kāi)發(fā)的主流。為此,在.NET 4 中就引入了“并行編程”。在.NET 4 中一些列的Library和類為并行編程提供了支持,如: Task Parallel Library,Parallel LINQ等。

   其實(shí)在.NET 1.0中就有了并行編程技術(shù)的一些實(shí)現(xiàn)---多線線程技術(shù)。多線程最大的問(wèn)題就是難于使用和管理。在使用多線程的使用,因?yàn)樗膹?fù)雜性,往往使用我們把注意力分散了多線程上。而致使我們的最初目的被掩蓋了。

  1.2 比較區(qū)別

  在.NET 4中提出的并處編程的底層機(jī)制其實(shí)還是基于多線程的。但是他們之前最大的區(qū)別就是.NET 4中的并行編程更加方便。

  在傳統(tǒng)的編程模型中,程序員負(fù)責(zé)創(chuàng)建線程,為線程分配任務(wù),管理線程。一個(gè)形象的比喻:你擁有一批士兵,然后你對(duì)他們下達(dá)命令,之后,你就必須時(shí)刻監(jiān)視你的那些士兵,確保他們按照你的意圖辦事。(很累吧!)  在.NET 4中的并行編程是依賴Task Parallel Library(后面簡(jiǎn)稱為TPL) 實(shí)現(xiàn)的。在TPL中,最基本的執(zhí)行單元是task(中文可以理解為"任務(wù)"),一個(gè)task就代表了你要執(zhí)行的一個(gè)操作。你可以為你所要執(zhí)行的每一個(gè)操作定義一個(gè)task,TPL就負(fù)責(zé)創(chuàng)建線程來(lái)執(zhí)行你所定義的task,并且管理線程。TPL是面向task的,自動(dòng)的;而傳統(tǒng)的多線程是以人工為導(dǎo)向的。

  Task機(jī)制使得我們把注意力關(guān)注在我們要解決的問(wèn)題上面。如果之前的多線程技術(shù)使得我們放棄了一些并行編程的使用,那么.NET 4中的新的并行編程技術(shù)可以讓我們重新建立信心。  雖然有了新的并行技術(shù),但是傳統(tǒng)的多線程的技術(shù)還是很有用的。當(dāng)我們使用TPL中的并行技術(shù)的時(shí)候來(lái)執(zhí)行多個(gè)task的時(shí)候,我們不用在關(guān)心底層創(chuàng)建線程,管理線程等。

  2. 并行編程技術(shù)的利弊

  使用并行技術(shù)最大的好處就是提高了系統(tǒng)的性能。并行處理過(guò)程一般是這樣的:一個(gè)要執(zhí)行的任務(wù)被拆分為很多很小的部分,然后這些很小的部分就分別在不同處理器(可以是多核的一臺(tái)電腦,也可以使很多的電腦)上執(zhí)行。因?yàn)檫@些很多很小的部分同時(shí)在執(zhí)行,所以稱之為"并行"。

  使用并處編程的時(shí)候需要考慮下面的問(wèn)題:

  1.開(kāi)銷問(wèn)題。

  并行執(zhí)行不是免費(fèi)的,也是要開(kāi)銷的。在并行運(yùn)行開(kāi)始和管理都是需要開(kāi)銷的,就類比在線程的創(chuàng)建和管理一樣。在程序中,你要執(zhí)行的任務(wù)越多,那么使用并行的效果就越好。

  2. 數(shù)據(jù)的協(xié)調(diào)如果在并行執(zhí)行的那些小部分需要共享公共的數(shù)據(jù),那么我們就要協(xié)調(diào)。一般來(lái)說(shuō),需要協(xié)調(diào)的數(shù)據(jù)越多,并行執(zhí)行的性能損耗就越大。如果執(zhí)行各個(gè)小部分之間都是獨(dú)立的,那么我們就不用協(xié)調(diào)了。但是很多的時(shí)候,我們都是需要協(xié)調(diào)的。而且協(xié)調(diào)的技術(shù)也不是很難,在之后的文章中會(huì)一一講述。

  3.性能提高多少增加一臺(tái)計(jì)算機(jī)的CPU可能會(huì)提高程序的運(yùn)行速度,但是不是絕對(duì)的。我們知道,一個(gè)應(yīng)用程序在單核的計(jì)算機(jī)上運(yùn)行的時(shí)間不一定(往往也不是)雙核計(jì)算機(jī)的1/2.所以,采用并行編程不一定就一定會(huì)成倍的提高程序的性能。因?yàn)樾阅芘c很多的因數(shù)有關(guān)的,硬件就是很大的因數(shù)。

  3. 何時(shí)采用并行編程

   建議:如果一個(gè)問(wèn)題能夠用并行編程解決,那么就用,否則就不用。聽(tīng)起來(lái)好像是廢話,但是確實(shí)是一個(gè)很不錯(cuò)的建議。因?yàn)椴⑿芯幊桃膊皇侨f(wàn)能的,也只能解決一類的問(wèn)題,所以在用之前要分析問(wèn)題了。如果一個(gè)問(wèn)題確實(shí)能夠用并行的方案來(lái)解決,但是有很多的因數(shù)影響,如之前我們提到的一些問(wèn)題。權(quán)衡使用之后的開(kāi)銷和好處在決定是否使用。后續(xù)文章會(huì)給出很多的例子。

  今天暫時(shí)寫到這里吧,理論講了一大堆的,希望園里的朋友見(jiàn)諒啊!從下篇開(kāi)始就用code+講解的形式。

NET技術(shù).NET 4 并行(多核)編程系列之一入門介紹,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩综合一区 | 2019精品手机国产品在线 | 欧洲尺码日本国产精品 | 91电影在线播放 | 日韩一区二区福利 | 一区二区在线 | 欧美寡妇偷汉性猛交 | 欧美激情一区二区 | 一区二区三区四区在线 | 国产一级毛片精品完整视频版 | 一区二区成人 | 一区二区在线观看av | av一区二区三区四区 | 99re视频在线免费观看 | 色一级片 | 欧美日韩精品一区二区三区四区 | 犬夜叉在线观看 | 国产丝袜一区二区三区免费视频 | 亚洲综合二区 | 91精品欧美久久久久久久 | 色香蕉在线| 性做久久久久久免费观看欧美 | 国产一区二区三区免费视频 | 日本一区二区不卡视频 | 精品一区二区三区免费视频 | 国产在线网站 | 成人在线观看欧美 | 久久久精品久 | 免费不卡视频 | 超碰免费在线 | 亚洲视频免费在线观看 | 精品久久久久久久 | 欧美精产国品一二三区 | 日韩中文字幕免费 | 犬夜叉在线观看 | 欧美成人精品一区二区三区 | 亚洲视频在线观看免费 | 自拍视频在线观看 | 午夜精品一区二区三区三上悠亚 | 午夜精品视频 | 日韩精品极品视频在线观看免费 |