zoukankan      html  css  js  c++  java
  • Parallel Extensions CTP第二版发布

     

    Parallel Extensions CTP第二版发布

    LazyBee

    20086月微软Parallel Extensions项目组发布了Parallel Extendsions CTP的第二个版本。这个版本主要包含以下组件:

    1 任务并行库TPL(Task Parallel Library): 提供命令的方式将面向数据的操作以及轻量级的任务自动的运行在并行硬件上,以提高运行速度。

    2 PLINQParallel LINQ)提供以声明的方式对数据源进行并行化的查询

    3 调配的数据结构CDS(Coordination Data Structures):用于支持作业调配和管理共享状态

     在这版中相对200712月的版本,CDS是新增加的组件。并且在200712月的CTPTPL是建立在原型调度器的基础上的,而这版中的调度器被完全重写,新调度器将更健壮、更有效、和更具扩展性,它使用协调调度和“偷任务”技术来达到更快、更有效和更大CPU利用率的目的。同时也在System.Threading.Tasks.TaskSystem.Threading.Tasks.Future<T>类中通过提供ContinueWith方法来提供了一个新的延续模型,使得新任务能在前一个任务完成时被调度。例如:

    Var futureC=Future.Create()(()=>A()).ContinueWith(a=>B(a.value)).ContinueWith(b=>C(b.Value));

    另外,在Task类中对应于WaitAll方法增加了WaitAny方法来用于同步;移除了Task的基类TaskCoordinator;也将Parallel.Do改名为Parallel.Invoke.

    针对PLINQ,主要是将上一版基于线程池的实现更改为基于TPL来实现。同时更改了排序的使用方式,以前版本是通过ParallelQueryOptions枚举来保留顺序,在这版中这个枚举被删除了,而是使用AsOrdered扩展方法来替代;同时AsUnordered扩展方法也在新版中被提供。AsOrdered或者OrderBy能被使用来确保保留原始顺序,而AsUnordered能被使用在性能比顺序更重要的情况下关闭查询的排序部分。还有就是提供了一些新的扩展象Zip等。

    你可以到以下地址http://www.microsoft.com/downloads/details.aspx?FamilyId=348F73FD-593D-4B3C-B055-694C50D2B0F3&displaylang=en去下载这个CTP版本。

  • 相关阅读:
    游戏中战斗伤害范围-弹道飞行
    游戏中战斗伤害范围攻击计算完整全版
    更加强健的线程模型,解决线程卡死,退出异常情况
    存在即合理,重复轮子orm java版本
    游戏里12方向,任意方向计算正前方矩形规则
    我是如何设计游戏服务器架构的
    游戏中精灵对象的属性功能设计
    看我是如何处理自定义线程模型---java
    面试和面试者如何保持心态
    谈谈枚举的新用法——java
  • 原文地址:https://www.cnblogs.com/LazyBee/p/1223989.html
Copyright © 2011-2022 走看看