写点什么

.NET 并行扩展之模式与范例

  • 2010-05-22
  • 本文字数:685 字

    阅读完需:约 2 分钟

虽然从 2007 年开始微软致力于.NET 的并行扩展,但针对.NET 4.0 的多项功能仍未充分实现。有些内部框架的功能“过于专属”,而其它功能则有利于测试与用户反馈。 Stephen Toub 提到:

所幸的是大部分案例中,我们能够基于.NET 4 提供的并行架构与.NET 4 类型和方法来实现这项功能,并在其它案例中使用.NET 4 提供的扩展功能,让开发人员能清晰地实现独立的自定义功能。久而久之,我们收集了大量的案例,我们选择把 ParallelExtensionsExtras 作为.NET 4 范例的一部分进行公布,大家可从 http://code.msdn.microsoft.com/ParExtSamples 下载。

代码范例涵盖了多种不同的功能。以下列出大家关心的部分功能:

IProducerConsumerCollection 实现了 BlockingCollection 封装。该接口是用于传统厂商与客户解决方案的线程安全集合。它并不包含在.NET 4.0 当中,因为不同应用程序对 BlockingCollection 有不同的需求。

对于处理 COM 组件所需的单线程单元,微软提供了 StaTaskScheduler 。StaTaskScheduler 的入门版本简单易用,它启用若干预定义的 STA 线程并等待处理任务。微软推荐用户使用本地线程存储来给每个工作线程实例化 COM 对象。

对于 Rx Framework 感兴趣的开发人员,可以参考 Task.ToObservable 扩展方法。它可订阅 Task 的结果。如果该订阅在任务完成之前就被丢失,那么该任务也会被取消。

一个相对复杂的解决方案就是 ReductionVariable 。它包含一些值,与实例或线程一一对应,在归约操作中使用。基于本地线程的存储,减少了它在工作线程间同步的比例。归约操作一旦完成,就可以对这些值进行枚举来生成最终结果。

查看英文原文: Patterns and Samples for .NET Parallel Extensions

2010-05-22 05:111758
用户头像

发布了 87 篇内容, 共 21.7 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

分布式事务

insight

分布式事务 3月日更

【LeetCode】设计哈希映射Java题解

Albert

算法 LeetCode 28天写作 3月日更

通用中间件模型

型火🔥

架构 分布式 抽象 中间件 模型

如何打造一款全球化的App?

故胤道长

硅谷 国际化 ios开发 Android开发 硅谷问道

源码分析-Netty: 并发编程的实践(二)

程序员架构进阶

源码分析 Netty 多线程高并发 28天写作 3月日更

架构师训练营-Web 攻击与防护

引花眠

架构师训练营 4 期

架构师训练营 4 期 第11周

引花眠

架构师训练营 4 期

哈希吧,滚雪球学 Python 哈希表与可哈希对象

梦想橡皮擦

28天写作 3月日更

最新版Swagger 3升级指南和新功能体验!

王磊

Java swagger

开发人员的软实力之一:配合度

boshi

职业素养 七日更

大作业-附件3

曾烧麦

产品训练营

Google面试题-怎样实现拼写纠错的功能?

Nick

数据结构 二分查找 数据结构与算法

【办公自动化--加餐】打开Excel后首先应该进行的7个操作

IT蜗壳-Tango

办公自动化 3月日更 IT蜗壳教学

寻找被遗忘的勇气(十四)

Changing Lin

3月日更

容器引擎学习笔记

lenka

3月日更

优雅编程 | 24个Javascript代码优化技巧

devpoint

js 空值运算符 高级函数 模板字面量

1.2W 字的 SQL 语法速成手册

xcbeyond

MySQL sql 3月日更

别再问我们用什么画图的了!问就是excalidraw

万俊峰Kevin

微服务 工具软件 go-zero 画架构图

归并排序与快速排序以及PHP实现

一个大红包

3月日更

产品0期 - 完整的产品文档(大作业)

曾烧麦

产品训练营

大作业-附件5

曾烧麦

产品训练营

高并发HTTP请求实践

高性能架构探索

大作业-附件1

曾烧麦

产品训练营

大作业-附件4

曾烧麦

产品训练营

jdk 源码系列之 TheadPoolExecutor

sinsy

jdk ThreadPoolExecutor

JDK动态代理的实现机制

xzy

Java 动态代理 原理分析

大作业

瑾瑾呀

卡梅隆和他的《阿凡达》「Day 22」

道伟

28天写作

作业 - 知识星球 - 新手引导

hao hao

大作业-附件2

曾烧麦

产品训练营

Docker 教程(二):Dockerfile

看山

Docker Dockerfile

.NET并行扩展之模式与范例_.NET_Jonathan Allen_InfoQ精选文章