那些年,我们一起追寻的异步编程
来源:互联网 发布:网络短信诈骗的论文 编辑:程序博客网 时间:2024/05/16 17:39
哈哈,经过一番努力,我写的异步编程系列也算有头有尾,当然不是说这个系列已经更新完毕,这个头尾只是表示新旧知识点都有简单涉及到,接下去我还会丰富这一系列并且有机会整个小应用(愿景是弄一个开源组件吧,结合socket)。想获取本系列更新的第一手资源,请“加我的关注”……感谢大家一直给予的支持……(*^_^*)……
术语:
APM 异步编程模型,Asynchronous Programming Model
EAP 基于事件的异步编程模式,Event-based Asynchronous Pattern
TAP 基于任务的异步编程模式,Task-based Asynchronous Pattern
TPL 任务并行库,Task Parallel Library
现在我给这个系列整个目录和做个简单介绍。
“概要 + 目录”整理
C#语言是微软于2000年发布,基于.NET Framewrok框架的、面向对象的高级语言。经过近十三年的发展,经历了5次大的升级,目前最新版本为C#5.0(对应于.NET Framework 4.5)。其中每个版本发布都是有一个“主题”。即:C#1.0托管代码→C#2.0泛型→C#3.0LINQ→C#4.0动态语言→C#5.0异步编程。这系列既是针对“异步编程”所写。
C#版本
.NET 版本
Visual Studio 版本
特性描述
C# 1.0
.NET 1.0/1.1
VS 2002/2003
C#的第一个正式发行版本。微软的团队从无到有创造了一种语言,专门为.NET编程提供支持
C# 2.0
.NET 2.0
VS 2005
C#语言开始支持泛型,.NET Framework 2.0新增了支持泛型的库
.NET 3.0
新增了一套API来支持分布式通信(Windows Communication Foundation— WCF)、富客户端表示(Windows Presentation Foundation)、工作流(Windows Workflow—WF)以及Web身份验证(Cardspaces)
C# 3.0
.NET 3.5
VS 2008
添加了对LINQ的支持,对用于集合编程的API进行了大幅改进。.NET Framework 3.5对原有的API进行了扩展,从而支持了LINQ
C# 4.0
.NET 4.0
VS 2010
添加了动态类型(dynamic)的支持,引入了新的轻量级线程同步基元及新的异步编程类库TPL
C# 5.0
.NET 4.5
VS 2012
改进并扩展了.NET4.0中引入的TPL类库,并引入async和await关键字轻松构建异步方法。
1. 我的异步编程整理
资料整理路线:线程----线程池----线程同步----并行任务----三种异步编程模型。首先了解最基础的线程(Thread类),再进一步明白线程管理器(ThreadPool类)。因为多个工作项之间可能出现并行运行,会造成对共享资源的访问问题,所以引入线程同步基元来让共享资源得到合理使用。最后介绍.NET4.0新引入并在.NET4.5中得到优化和扩展的TPL(任务并行库),并结合C# 5.0中新引入的async和await关键字轻松构建异步方法。详细如下:
异步编程:线程概述及使用
异步编程:使用线程池管理线程
异步编程:线程同步基元对象
异步编程:轻量级线程同步基元对象
异步编程:.NET4.5 数据并行
异步编程:异步编程模型 (APM)
异步编程:基于事件的异步编程模式(EMP)
异步编程:.NET 4.5 基于任务的异步编程模型(TAP)
2. 我的异步编程外文翻译
对的,老外的文章总会为我们带来意外的知识和惊喜,往往一些复杂、内核、深入、独到的见解会出现在老外的文章中,此时对于像和我一样E文不好的童鞋就会错过不少经典见解,此处我分享一些在学习异步编程过程中碰到的好E文:
(译)关于async与await的FAQ
这篇文章为我带来的不仅仅是async和await关键字的认识,更为我提供了很多关于TPL的扩展资源,我很推荐大家看看这篇博文,当然其中还有不少E文,有时间我会将我认为不错的进行翻译分享。
像下面所翻译的文章:
(译).NET4.X 并行任务中Task.Start()的FAQ
(译).NET4.X并行任务Task需要释放吗?
为TPL提供同步基元,但这只是提供TPL的应用思路,不推荐将这些同步基元应用于项目中。
(译)构建Async同步基元,Part 1 AsyncManualResetEvent
(译)构建Async同步基元,Part 2 AsyncAutoResetEvent
(译)构建Async同步基元,Part 3 AsyncCountdownEvent
(译)构建Async同步基元,Part 4 AsyncBarrier
(译)构建Async同步基元,Part 5 AsyncSemaphore
(译)构建Async同步基元,Part 6 AsyncLock
(译)构建Async同步基元,Part 7 AsyncReaderWriterLock
3. 待续…异步编程系列持续更新中
…………
……
分享这系列博文过程中一直都感受到大家给予的支持与鼓励让我着实激动不已也让我坚持做下去(杜绝太监作品),现在本系列已有小成,所以将目录整理下方便大家查阅。
- 那些年,我们一起追寻的异步编程
- 那些年,我们一起追寻的异步编程[系列]
- 那些年,我们一起追寻的异步编程
- 那些年我们一起追寻过的考研(华科计算机)
- 那些年我们追寻过的开源软件
- 那些年,我们一起学过的编程语言
- 那些年,我们一起追的女孩
- 那些年 我们一起玩的ICQ
- 那些年我们一起的CSDN
- 那些年,我们一起学的C++
- 《那些年,我们一起追的女孩》
- 那些年我们一起追的风车...
- 那些年,我们一起追的HACK
- 那些年,我们一起喜欢的诺基亚
- 那些年,我们一起追的Android
- 那些年,我们一起写的情诗
- 那些年,我们一起学的嵌入式
- 那些年,我们一起走过的时光
- Weka开发[15]-ZeroR源代码介绍(入门篇)
- 关于在UIwebView中访问HTTPS站点的几种方法
- linux下压力测试软件siege的安装与使用详解
- 使用多线程的利弊
- AppDelegate文件下各方法的用法:(应用程序挂起、复原与终止)
- 那些年,我们一起追寻的异步编程
- ZOJ 1157A Plug for UNIX(二分图最大匹配)
- 用静态成员函数调用非静态成员变量
- [weka 开发 15-1] Multi-Label Classification(多标签分类) 介绍
- 控制台重定向stdout & stderr
- Linux内核的ioctl函数学习
- [cocos2d-x]File文件的IO读写处理
- 如何为嵌入式开发建立交叉编译环境
- .net GridView介绍