代码改变世界

随笔分类 -  并行和异步

.NET中的异步编程(五)- 第三方类库

2011-03-24 00:02 by 横刀天笑, 2606 阅读, 收藏, 编辑
摘要: 在前一篇文章中我们看到了一些关于CPS的讨论,并利用C# 2新增的迭代器yield来实现CPS的编码方式,简化异步编程。不过异步并不是你想象的那么简单,也不是我那个随手写的几行代码能够解决的,特别是当并发环境下你会看到到处是异常。所幸的是在.NET平台中已经有一些第三方类库能够简化我们的异步编程,而且还更可靠 阅读全文

.NET中的异步编程(四)- IO完成端口以及FileStream.BeginRead

2011-03-22 08:55 by 横刀天笑, 8299 阅读, 收藏, 编辑
摘要: 写这个系列原本的想法是讨论一下.NET中异步编程风格的变化,特别是F#中的异步工作流以及未来的.NET 5.0中的基于任务的异步编程模型。但经过三篇文章后很多人对IO异步背后实现的原理以及为什么这样能提高性能很感兴趣。其实我本不想花更多的文字在这些底层实现的细节上,一来我并不擅长这些方面,二来我们使用.NET的异步IO就不需要关心这些底层东西,因为已经为你封装完备了。不过为了避免大家一再在这上面商讨,我还是在这个系列中间插入了一篇来解释一下。 阅读全文

.NET中的异步编程(三)- Continuation passing style以及使用yield实现异步

2011-02-24 07:45 by 横刀天笑, 8004 阅读, 收藏, 编辑
摘要: 在上一篇文章中我们围观了传统的异步编程,感受到了异步编程不是简单的事情。传统的异步方式将本来紧凑的代码都分成两部分,不仅仅降低了代码的可读性,还让一些基本的程序构造无法使用,所以大部分开发人员在遇到应该使用异步的地方都忍痛割爱。本来我在本篇文章中想讨论一下.NET世界中已有的几个辅助异步开发的类库,但是经过思考后觉得在这之前介绍一下一些理论知识也许对理解后面的类库以及更新的内容有所帮助。今天我们要讨论的是Continuation Passing Style 阅读全文

.NET中的异步编程(二)- 传统的异步编程

2011-02-22 08:15 by 横刀天笑, 13366 阅读, 收藏, 编辑
摘要: 在上一篇文章中,我们从构建响应灵敏的界面以及构建高可伸缩性的服务应用来讨论我们为什么需要异步编程,异步编程能给我们带来哪些好处。那么知道了好处,我们就开始吧,但是在异步编程这个方面,说总是比做简单。套用那句不是名言的名言:编写异步程序是困难的,编写可靠的异步程序尤其困难。 阅读全文

.NET中的异步编程(一)-为什么需要异步

2011-02-20 12:24 by 横刀天笑, 12498 阅读, 收藏, 编辑
摘要: 在2010年的PDC上,微软发布了Visual Studio Async CTP,大大地降低了异步编程的难度,让我们可以像写同步的方法那样去编写异步代码。Async CTP也在社区里掀起了不小的波澜。在这之后,我也学习了一段时间,这个系列会将这段时间的学习作个梳理。 阅读全文

【线程呓语】与线程相关的一些概念

2011-01-18 21:55 by 横刀天笑, 1919 阅读, 收藏, 编辑
摘要: 编写多线程程序会遇到很多挑战,编写多线程程序并且保证不出错是非常困难的。首先在了解多线程编程之前就需要了解很多重要概念,本文就是对一些多线程概念做一些简单而且不严谨但好理解的阐述。 阅读全文

【线程呓语】Thread

2011-01-08 10:09 by 横刀天笑, 3238 阅读, 收藏, 编辑
摘要: 最近对并行和异步非常感兴趣,可惜对这些计算机基础理论的东西掌握的不够牢固,所以捡起来看看。如果有什么问题请大家不吝赐教,或者有一些并行和异步的论文也分享出来,让我拜读拜读,谢了~~ 阅读全文