日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

微软并行编程类库Parallel Extensions初探 Part1

發(fā)布時(shí)間:2024/4/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微软并行编程类库Parallel Extensions初探 Part1 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

Microsoft Parallel Extensions to the .NET Framework 3.5是一個(gè)托管編程模型,用于數(shù)據(jù)并行化和任務(wù)并行化,并可對(duì)統(tǒng)一在共同的工作調(diào)度程序之下的并行硬件進(jìn)行協(xié)調(diào)。 Parallel Extensions to the .NET Framework 3.5使開(kāi)發(fā)者更容易編寫(xiě)出充分發(fā)揮并行硬件的優(yōu)勢(shì)的程序,不但能隨著處理器數(shù)量的增長(zhǎng)而提高性能,而且避免了許多舊有并發(fā)編程模型的復(fù)雜性。

你可以從這里下載Microsoft Parallel Extensions to the .NET Framework 3.5 June 2008 CTP版本,安裝后會(huì)注冊(cè)一個(gè)System.Threading.dll程序集到GAC中。Parallel Extensions主要由兩部分組成:Task Parallel Library(TPL)和Parallel LINQ (PLINQ),它們將會(huì)集成在.NET Framework 4.0中。

簡(jiǎn)單調(diào)用

在開(kāi)始之前,我們不妨停下來(lái)思考幾個(gè)問(wèn)題:如果有多個(gè)線程在同一時(shí)間訪問(wèn)同一個(gè)變量,它們之間可能會(huì)互相影響,該如何解決?如果有多個(gè)線程同時(shí)鎖住了一些資源,由于互相等待而造成死鎖,該如何解決?如果覺(jué)的這些問(wèn)題很難解決,那就不要思考了,有了Parallel.Invoke,無(wú)需再去考慮這些令人頭疼的問(wèn)題,我們先定義三個(gè)任務(wù):

private void Task1() {Thread.Sleep(1000); } private void Task2() {Thread.Sleep(2000); } private void Task3() {Thread.Sleep(3000); }

并行調(diào)用這三個(gè)任務(wù),只需要一句話:

Parallel.Invoke(Task1, Task2, Task3);

除此之外,還可以把所有的任務(wù)放在一個(gè)Action數(shù)據(jù)組中,再進(jìn)行調(diào)用,如下代碼片段,這在某些場(chǎng)景中會(huì)非常的有用,我們?cè)谠O(shè)計(jì)階段無(wú)需考慮最終運(yùn)行時(shí)將會(huì)有多少個(gè)任務(wù)會(huì)執(zhí)行:

Action[] actions = { Task1, Task2, Task3 }; Parallel.Invoke(actions);

我們不妨對(duì)Parallel.Invoke做一個(gè)簡(jiǎn)單的測(cè)試,如下代碼片段所示:

private long InvokeSequential() {Stopwatch watch = new Stopwatch();watch.Start();Task1();Task2();Task3();watch.Stop();return watch.ElapsedMilliseconds; }private long InvokeParallel() {Stopwatch watch = new Stopwatch();watch.Start();Parallel.Invoke(Task1, Task2, Task3);watch.Stop();return watch.ElapsedMilliseconds; }private long InvokeParallelArray() {Stopwatch watch = new Stopwatch();watch.Start();Action[] actions = { Task1, Task2, Task3 };Parallel.Invoke(actions);watch.Stop();return watch.ElapsedMilliseconds; }

來(lái)看看最后的結(jié)果:

??

循環(huán)調(diào)用

循環(huán)執(zhí)行某件事情應(yīng)該是我們編程中經(jīng)常遇到的問(wèn)題,但是之前所有的循環(huán)只能順序的進(jìn)行執(zhí)行,如下面這段代碼,再平常不過(guò)了:

for (int i = 0; i < 10; i++) {Compute(i); }

在Parallel Extensions中,可以使用Parallel.For來(lái)并行的執(zhí)行循環(huán)任務(wù):

Parallel.For(0, 10,delegate (int i){Compute(i);});

甚至有了Lambda表達(dá)式,還可以更簡(jiǎn)單的編寫(xiě)為:

Parallel.For(0, 10,i => { Compute(i);});

現(xiàn)在,我們?cè)賮?lái)做一個(gè)簡(jiǎn)單的測(cè)試,代碼如下:

private static long SequentialForLoop() {Stopwatch watch = new Stopwatch();watch.Start();for (int i = 0; i < 10; i++){Compute(i);} watch.Stop();return watch.ElapsedMilliseconds; }private static long ParallelForLoop() {Stopwatch watch = new Stopwatch();watch.Start();Parallel.For(0, 10,i => { Compute(i);});watch.Stop();return watch.ElapsedMilliseconds; }private static void Compute(int i) {Thread.Sleep(200 * i); }

測(cè)試結(jié)果如下:

類似的在Parallel中還提供了Parallel.ForEach方法,如下圖所示:

?

我們使用類似于如下的代碼來(lái)使用該方法:

List<int> data = new List<int> { 1, 2, 3, 4, 5 }; Parallel.ForEach(data,i => { Compute(i); });

總結(jié)

以上簡(jiǎn)單的介紹了Task Parallel Library中的Parallel, 希望對(duì)大家有所幫助

轉(zhuǎn)載于:https://www.cnblogs.com/liufei88866/archive/2013/06/13/3133641.html

超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的微软并行编程类库Parallel Extensions初探 Part1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 粗大挺进潘金莲身体在线播放 | 91在线精品秘密一区二区 | 永久精品视频 | 久久精品综合视频 | 99re这里都是精品 | 一本到高清 | 99精品在线免费观看 | 丁香六月欧美 | 国产成人一区二区三区 | 亚洲妇熟xx妇色黄蜜桃 | 午夜视频h| 久久久久久久蜜桃 | 8mav在线| 成人精品免费视频 | 99精品免费观看 | 国产乱真实合集 | 色人阁视频 | 51精品国产人成在线观看 | 一起射导航 | 91嫩草网 | www在线 | 国产人妻人伦精品1国产 | 国产成人无码a区在线观看视频 | 1769国产精品 | 午夜8888 | 好吊色综合 | 精品视频在线观看免费 | 免费黄色在线看 | 男男play呻吟动漫网站 | 国产成人一区二区 | 青青草手机在线 | 欧美日韩在线观看一区二区三区 | 国产丝袜视频 | 成人日韩视频 | 国产女主播视频 | 国产欧美久久久久久 | 四虎最新网址在线观看 | 幸福,触手可及 | 天天影视色 | 岛国av动作片 | 天天做天天爱天天做 | 国产成人在线精品 | 精品一区二区三区精华液 | 天天综合天天色 | 亚洲欧美日韩综合一区二区 | 手机成人av在线 | 亚洲一在线 | 亚洲视频一区在线播放 | 欧美丰满熟妇xxxx | 中文字幕一区视频 | 黄色片网站视频 | 国产搞逼视频 | 丝袜av电影| 18成人免费观看网站 | 思思99精品视频在线观看 | 嫩草一区 | 不卡的免费av | 9久9久9久女女女九九九一九 | 欧美 日韩 人妻 高清 中文 | 成人啪啪18免费游戏链接 | 麻豆精品视频 | 精品影院 | 亚洲欧美另类综合 | 91视频大全 | 欧美一区免费观看 | 香蕉国产999 | 欧美理论片在线观看 | 丰满大乳奶做爰ⅹxx视频 | 欧美黄色免费大片 | 麻豆影视av | 日韩天堂一区 | 欧美freesex黑人又粗又大 | 国产乱子伦视频一区二区三区 | 欧美性xxxxx 亚洲特黄一级片 | 日本久久中文字幕 | 久久99精品国产麻豆91樱花 | 成年人在线播放视频 | 欧美黄色一区二区三区 | 免费成人在线观看视频 | 欧美成人一区二区在线 | 俺也来俺也去俺也射 | 婷婷丁香激情五月 | 亚洲性图一区二区三区 | 亚洲免费网 | 久久精品国产视频 | 国产精品久久久毛片 | 日本在线视频中文字幕 | 香港台湾日本三级大全 | 久操中文 | 一区二区三区日韩在线 | 欧美日韩国产亚洲沙发 | 一区二区不卡在线观看 | 午夜精品久久久久久久久久久久 | 夜夜看av | 国产精品xxx在线 | 四虎精品一区 | 国产精品久久久久久吹潮 | 99只有精品| 欧美久久久久久又粗又大 |