知识大全 .NET 4.0函数式编程与协调数据结构

Posted 函数

篇首语:知识是种子,而好奇则是知识的萌芽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .NET 4.0函数式编程与协调数据结构相关的知识,希望对你有一定的参考价值。

.NET 4.0函数式编程与协调数据结构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  协调数据结构(Coordination Data Structures CDS)是在 NET 中包含的一套线程安全对象 其中大部分是集合类型 在沉寂了 个月之后 这些内容终于有了重大的更新 其中最明显的部分莫过于引入了函数式编程技术 从而减少了设计模式的使用

  一个新类型是ConcurrentLinkedList 它使用一个predicate函数 并配合TryInsertBeeen方法以线程安全的方式插入节点 这个predicate函数会被对象本身多次调用 用于确定合适的插入位置 这样 即使在单线程的情况下 它使用起来也比普通的LinkedList要方便一些

  另一使用函数式技巧的地方是SpinWait对象 开发人员可以向SpinWait SpinUntil方法传递一个predicate函数 而不是一遍又一遍地手动调用SpinOnce方法

  下一个则是新类型 ConcurrentBag 这好比是一个对多线程进行附载均衡的队列集合 普通情况下 每个线程只对其自己的队列进行读写 不过在队列为空时 它就会从其它线程的队列中 窃取 一些元素 这意味着在大多数情况下 线程之间不会出现资源竞争 但是每个线程在所有工作完成之前依然会 全力以赴 ConcurrentBag并非ConcurrentQueue的替代品 后者依然是单生产者/单消费者场景下更好的选择

  WriteOnce类已被移除——这个功能似乎并不怎么有用 它只是在setter被访问多次的情况下抛出异常而已 相比之下Lazy和LazyVariable类型更为有用一些 因此它们被保留了下来 这两者都体现了延迟初始化的特性(因此又被称为futures) 前者是一个类 而后者则是一个轻量的 但并非 绝对 线程安全的结构 此外 类库中新增了LazyInitializer 用于处理内存占用(memory footprint)成为问题的情况 还有ThreadLocal类 它可以将线程本地资源和Futures线程安全地绑定起来

cha138/Article/program/net/201311/15408

相关参考

知识大全 .Net PetShop 4.0的层次结构

.NetPetShop4.0的层次结构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  说起软件系

知识大全 .net编程之路(四)

  现在我们来看看这段代码  如果创建这样的一个实例carMyCar=newcar(mazida)  那么这个实例调用的构造函数是初始化器转向执行带两个参数的构造函数  只读字段  readonly字

知识大全 与编程有关的数学知识点是那些

与编程有关的数学知识点是那些?三角函数,立体几何,高等数学。看你要搞哪方面编程了,比如三维变换,那就得搞立体几何数据分析就得搞高等数学不过三角函数是一定要会的。除此之外还有统计学,离散数学等……与奥运

知识大全 漫谈.Net PetShop和Duwamish ADO.NET数据库编程

漫谈.NetPetShop和DuwamishADO.NET数据库编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 ASP.NET数据库编程入门

ASP.NET数据库编程入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  因为Access并不

知识大全 .NET 4并行编程之共享数据问题和解决概述

.NET4并行编程之共享数据问题和解决概述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在开始

知识大全 ASP.NET数据库编程之处理文件访问许可

ASP.NET数据库编程之处理文件访问许可  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一个MDB

知识大全 ASP.NET数据库编程快速入门之技术慨述

ASP.NET数据库编程快速入门之技术慨述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大约有

知识大全 vb.net实现sqlite数据库编程示例

   在项目开发中充分体会到了一个精简数据存储模块的重要性及实用性在综合了三年开发经验的基础上向各位推介一下sqlite数据库希望更多的程序猿支持开源精神 &n

知识大全 .net的编程之路(一)

  一预定义数据类型  char字符类型单引号例如charx=this;  c#中的每个数据类型其实就是一个静态的类每个变量都是一个类的实例  例如将int型的数据转化为stringstringx=i