并发 包括:异步 , 并行 ,TPL 数据流, 响应式编程
-
并发症状是多方面的。你可能需要向多个消费者分发或广播消息,而不是只有一个消费者。因为性能原因,在执行某些操作之前,可能需要批量提交一些请求。也可能有多个步骤,而如果每个步骤用一个专用线程的话,负载会很繁重。或者是随着消息在线程间跳转,上下文切换会影响延迟。
就是为解决这些问题而设计的
ps: url: infoq.com/cn/news/2014/01/Dataflow-PC/
- 从 .NET Framework 4 开始,TPL 是编写多线程代码和并行代码的首选方法。但是,并不是所有代码都适合并行化;例如,如果某个循环在每次迭代时只执行少量工作,或它在很多次迭代时都不运行,那么并行化的开销可能导致代码运行更慢。此外,像任何多线程代码一样,并行化会增加程序执行的复杂性。尽管 TPL 简化了多线程方案,但我们建议你对线程处理概念(例如,锁、死锁和争用条件)进行基本的了解,以便能够有效地使用 TPL
ps: url : msdn.microsoft.com/zh-cn/library/dd460717.aspx
- 死锁和争用条件
ps :url cnblogs.com/wywnet/p/4469332.html
- Reactive Extensions(Rx)是对LINQ的一种扩展,他的目标是对异步的集合进行操作,也就是说,集合中的元素是异步填充的,比如说从Web或者云端获取数据然后对集合进行填充。Rx起源于Microsoft DevLabs小组的研究,他扩展了LINQ的一些特性,目前Rx支持多种平台如JavaScript,Windows Phone,ios,Android 。随着数据处理变得复杂,LINQ使得我们的处理逻辑变得简单清晰,同样地,随着越来越多的数据通过从云端异步获取,Rx使得这种异步数据处理操作变得简单和容易维护。
ps url cnblogs.com/shanyou/p/3233894.html
ps url cnblogs.com/yangecnu/archive/2012/11/03/Introducting_ReactiveExtensions.html
-
Rx实现由如下项目::微软自己的Rx实现。: javascript扩展
ps url jdon.com/45833
-
使用SubscribeOn控制订阅(subscribing)的上下文
IObservable<TSource>的扩展方法SubscribeOn<TSource>(IScheduler)允许我们传入一调度器(Scheduler),控制订阅执行的上下文。
- ps url cnblogs.com/isun/p/4418038.html