Parallel Extensions CTP第二版发布
Parallel Extensions CTP第二版發(fā)布
LazyBee
2008年6月微軟Parallel Extensions項(xiàng)目組發(fā)布了Parallel Extendsions CTP的第二個(gè)版本。這個(gè)版本主要包含以下組件:
1 任務(wù)并行庫(kù)TPL(Task Parallel Library): 提供命令的方式將面向數(shù)據(jù)的操作以及輕量級(jí)的任務(wù)自動(dòng)的運(yùn)行在并行硬件上,以提高運(yùn)行速度。
2 PLINQ(Parallel LINQ)提供以聲明的方式對(duì)數(shù)據(jù)源進(jìn)行并行化的查詢
3 調(diào)配的數(shù)據(jù)結(jié)構(gòu)CDS(Coordination Data Structures):用于支持作業(yè)調(diào)配和管理共享狀態(tài)
?在這版中相對(duì)2007年12月的版本,CDS是新增加的組件。并且在2007年12月的CTP中TPL是建立在原型調(diào)度器的基礎(chǔ)上的,而這版中的調(diào)度器被完全重寫,新調(diào)度器將更健壯、更有效、和更具擴(kuò)展性,它使用協(xié)調(diào)調(diào)度和“偷任務(wù)”技術(shù)來(lái)達(dá)到更快、更有效和更大CPU利用率的目的。同時(shí)也在System.Threading.Tasks.Task和System.Threading.Tasks.Future<T>類中通過(guò)提供ContinueWith方法來(lái)提供了一個(gè)新的延續(xù)模型,使得新任務(wù)能在前一個(gè)任務(wù)完成時(shí)被調(diào)度。例如:
Var futureC=Future.Create()(()=>A()).ContinueWith(a=>B(a.value)).ContinueWith(b=>C(b.Value));
另外,在Task類中對(duì)應(yīng)于WaitAll方法增加了WaitAny方法來(lái)用于同步;移除了Task的基類TaskCoordinator;也將Parallel.Do改名為Parallel.Invoke.
針對(duì)PLINQ,主要是將上一版基于線程池的實(shí)現(xiàn)更改為基于TPL來(lái)實(shí)現(xiàn)。同時(shí)更改了排序的使用方式,以前版本是通過(guò)ParallelQueryOptions枚舉來(lái)保留順序,在這版中這個(gè)枚舉被刪除了,而是使用AsOrdered擴(kuò)展方法來(lái)替代;同時(shí)AsUnordered擴(kuò)展方法也在新版中被提供。AsOrdered或者OrderBy能被使用來(lái)確保保留原始順序,而AsUnordered能被使用在性能比順序更重要的情況下關(guān)閉查詢的排序部分。還有就是提供了一些新的擴(kuò)展象Zip等。
你可以到以下地址http://www.microsoft.com/downloads/details.aspx?FamilyId=348F73FD-593D-4B3C-B055-694C50D2B0F3&displaylang=en去下載這個(gè)CTP版本。
轉(zhuǎn)載于:https://www.cnblogs.com/LazyBee/archive/2008/06/17/1223989.html
總結(jié)
以上是生活随笔為你收集整理的Parallel Extensions CTP第二版发布的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 如何根据MAC地址获取设备厂商
 - 下一篇: 随手小记·080911