10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

.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:112033
用户头像

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

关注

评论

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

创世 | 中国古神话

chaozh

神话

女娲造物与补天 | 中国古神话

chaozh

人民自己创造的节日 | 经济

chaozh

并发必备基础知识汇总

itlemon

并发 基础

优雅地利用c++编程从1乘到20 | 技术总结

chaozh

c++

记一次bem命名规范使用优化方案

前端有的玩

Vue npm React bem

JVM 类加载机制

Alex🐒

JVM 深入理解JVM

JVM 对象内存布局

Alex🐒

JVM 深入理解JVM

【数据结构】Java 常用集合类 ArrayDeque

Alex🐒

Java 源码 数据结构

架构师训练营第七周作业-性能测试

sunnywhy

架构师训练营第7周作业

时来运转

架构师训练营第7周总结

时来运转

架构师训练营 - 命题作业 第 7 周

铁血杰克

压测工具如何选择?

elfkingw

【干货分享】通过命令操作来学习Git

itlemon

git git入门

深入 Java Web 技术内幕(二)浅析DNS域名解析过程

itlemon

DNS 域名解析

【译文】创建 Kubernetes manifest 的初学者指南

FeiLong

Kubernetes

JVM 垃圾回收机制

Alex🐒

JVM 深入理解JVM

Flask 中的 Sessions

Leetao

Python flask Web框架

深入Java Web技术内幕(一)浅析Web请求过程

itlemon

Java

神国统治者 | 中国古神话

chaozh

【数据结构】Java 常用集合类 PriorityQueue

Alex🐒

Java 源码 数据结构

Java并行程序基础

itlemon

Java 高并发 并行

如何挑选编程笔记本 | 数码产品

chaozh

Spring Security入门到实践(一)HTTP Basic在Spring Security中的应用原理浅析

itlemon

源码分析 spring security

JVM 运行时数据区

Alex🐒

JVM 深入理解JVM

JVM 垃圾回收器 G1

Alex🐒

JVM 深入理解JVM GC

彻底弄懂C++11右值引用 | 技术总结

chaozh

c++

程序员面试必备战衣 | T恤衫 - 程序员穿搭

chaozh

GEEK

JVM 垃圾回收器 CMS

Alex🐒

JVM 深入理解JVM GC

Ubuntu 20.04 上安装和配置 VNC

酱紫的小白兔

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