天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

  本篇文章的議題如下:

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

  2. 并行編程技術的利弊

  3. 何時采用并行編程

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

  1.1并行編程。

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

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

  1.2 比較區(qū)別

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

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

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

  2. 并行編程技術的利弊

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

  使用并處編程的時候需要考慮下面的問題:

  1.開銷問題。

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

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

  3.性能提高多少增加一臺計算機的CPU可能會提高程序的運行速度,但是不是絕對的。我們知道,一個應用程序在單核的計算機上運行的時間不一定(往往也不是)雙核計算機的1/2.所以,采用并行編程不一定就一定會成倍的提高程序的性能。因為性能與很多的因數(shù)有關的,硬件就是很大的因數(shù)。

  3. 何時采用并行編程

   建議:如果一個問題能夠用并行編程解決,那么就用,否則就不用。聽起來好像是廢話,但是確實是一個很不錯的建議。因為并行編程也不是萬能的,也只能解決一類的問題,所以在用之前要分析問題了。如果一個問題確實能夠用并行的方案來解決,但是有很多的因數(shù)影響,如之前我們提到的一些問題。權衡使用之后的開銷和好處在決定是否使用。后續(xù)文章會給出很多的例子。

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

NET技術.NET 4 并行(多核)編程系列之一入門介紹,轉載需保留來源!

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

主站蜘蛛池模板: 果冻传媒 在线播放观看 | 国内精品偷拍在线观看 | 俄罗斯性孕妇孕交 | 黑人猛挺进小莹的体内视频 | 国产精品久久久久久免费字体 | 久久青草免费91线频观看站街 | 青柠在线观看免费全集 | 亚洲精品国产一区二区贰佰信息网 | 蜜芽tv在线www | 久久精品麻豆国产天美传媒果冻 | 亚洲欧美无码2017在线 | 天堂tv免费tv在线tv香蕉 | 97豆奶视频国产 | 久拍国产在线观看 | caoporn 超碰在线视频 | 亚洲一区在线观看无码欧美 | 久草在线在线精品观看 | 亚洲婷婷天堂综合国产剧情 | 成年人视频免费在线播放 | 欧美aa级片 | 快播av网址 | 日本高清免费一本视频在线观看 | 中文字幕在线视频免费观看 | 国产99久久九九免费精品无码 | 为什么丈夫插我我却喜欢被打着插 | 免费看a毛片 | 国产日韩欧美三级 | 国产成人在线播放视频 | 神马电影院午 夜理论 | 一二三四韩国免费观看 | 欧美日韩国产在线一区二区 | 乳液全集电影在线观看 | 超碰国产人人做人人爽 | 空姐内射出白浆10p 空姐厕所啪啪啪 | 国产亚洲精品品视频在线 | 3D内射动漫同人资源在线观看 | 色人格影院第四色 | 美女脱内衣裸身尿口露出来 | 欧美极限变态扩张video | 国产成+人欧美+综合在线观看 | 紧缚束缚调教丨vk |