![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
异步编程(Async)
文章平均质量分 74
PunCha
这个作者很懒,什么都没留下…
展开
-
创建自己的awaitable类型
From: http://www.cnblogs.com/TianFang/archive/2012/09/21/2696769.html在C# 5.0中引入了await关键字,通过它可以非常容易的实现异步操作。在大多数的时候,await一般适合Task一起使用的,也非常方便。但有的时候,我们也需要自定义我们自己的awaitable类型,以实现更高的灵活性和效率。可以用于awa转载 2012-12-12 10:14:42 · 1815 阅读 · 0 评论 -
并发学习之:对条件变量(condition variable)的讨论
From: http://blog.csdn.net/fengge8ylf/article/details/6896380 作者:王东 1.1 什么是条件变量和条件等待?简单的说:条件变量(condition variable)是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待某个条件为真,而将自己挂起;另一个线程使转载 2013-01-11 02:23:41 · 2908 阅读 · 0 评论 -
并发学习之:多线程编程中条件变量和虚假唤醒的讨论
From: http://siwind.iteye.com/blog/1469216From:http://en.wikipedia.org/wiki/Spurious_wakeupAccording to David R. Butenhof's Programming with POSIX Threads ISBN 0-201-63392-2:"S转载 2013-01-11 15:21:10 · 3073 阅读 · 0 评论 -
并发学习之:不使用内核对象同步的并发队列
From: http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms686962(v=vs.85).aspxFrom: http://blog.chinaunix.net/uid-192452-id-3345030.htmlThe following example uses the InitializeSListHead转载 2013-01-09 23:55:08 · 1075 阅读 · 2 评论 -
并发学习之:Keyed Events(没看懂,要调试下才能明白,伤心!)
From: http://locklessinc.com/articles/keyed_events/Keyed EventsThe primitives used for synchronization between threads in a Linux process are based on the Futex multiplexing syscall. This转载 2013-01-10 00:26:18 · 2287 阅读 · 0 评论 -
并发学习之:等待定时器(Waitable Timer)
From:http://blog.csdn.net/zhangjinqing1234/article/details/7195826通过异步程序调用(APC)实现的定时功能编译:张海粟 定时器是一个在特定时间或者规则间隔被激发的内核对象。结合定时器的异步程序调用可以允许回调函数在任何定时器被激发的时候执行。本文的例子代码显示了如何实现。 使用本定时器时,你需要把常量转载 2013-01-08 00:50:45 · 1561 阅读 · 0 评论 -
并发学习之:APC (异步过程调用)
一个简单的APC例子,对应于Windows 并发编程指南p124。#include "stdafx.h"#include #include VOID NTAPI ApcFunc(ULONG_PTR pValue){ printf("Hello, this is APC and the parameter value is %d\n", *((DWORD*)pValue原创 2013-01-07 01:01:30 · 808 阅读 · 0 评论 -
并发学习之:Synchronization进行粗粒度线程同步的例子
一个使用Synchronization进行粗粒度线程同步的例子。(注意,Synchronization特性和ContextBoundObject必须同时使用,否则无效)这个例子很简单,2个Task对象,分别调用兽族农民的WorkWork和GugiGugi方法。GugiGugi内部有着3秒的停顿,用来观察输出结果。运行之后,很明显的可以看到,在某一个线程执行GugiGugi的时候,另一个线程在等原创 2013-01-05 16:58:23 · 1163 阅读 · 0 评论 -
C#异步编程之(三):深入 Async 和 Await 的实现及其成本
From: http://msdn.microsoft.com/zh-cn/magazine/hh456402.aspx异步性能:了解 Async 和 Await 的成本Stephen Toub异步编程长时间以来一直都是那些技能高超、喜欢挑战自我的开发人员涉足的领域 — 这些人愿意花费时间,充满热情并拥有心理承受能力,能够在非线性的控制流程中不断地琢磨回调,之后再回调。随着 M转载 2012-12-13 14:18:26 · 8781 阅读 · 0 评论 -
并发学习之:乱序执行和内存屏障
From: http://blog.163.com/zhaojie_ding/blog/static/1729728952007925111324379/?suggestedreading 乱序执行和内存屏障2007-10-25 23:13:24| 分类:编程开发 | 标签:|字号大中小订阅 最近写的一些关于在驱动程序开发中会遇到的关于乱转载 2013-01-04 00:44:08 · 1923 阅读 · 0 评论 -
并发学习之:缓存一致性
From: http://zhidao.baidu.com/question/214944467.htmlFrom: http://en.wikipedia.org/wiki/Cache_coherence首先明白什么是缓存,缓存是介于物理存储与CPU处理之间的一段内存空间,主要用于存储从物理存储读出、或者要写入的数据,这需要硬件或者软件支持。如果读取或写入物理存储中的一个字节或一转载 2013-01-03 23:11:49 · 1145 阅读 · 0 评论 -
C#异步编程之:(一)Task对象和lamda表达式探究
基于TPL的异步编程,最简单的就是使用Task对象,而创建一个Task对象,最简单的就是使用lamda表达式: static void Main(string[] args) { // create the cancellation token source CancellationTokenSource tokenSourc原创 2012-12-18 21:51:46 · 4544 阅读 · 0 评论 -
书评:Pro .NET 4 Parallel Programming in C#
Pro .NET 4 Parallel Programming in C#ISBN-13 (pbk): 978-1-4302-2967-4ISBN-13 (electronic): 978-1-4302-2968-1看了网上的评价,说这本书很适合入门的看,而且例子多,都可以运行,例子写的很严谨!NND,这本书真的是有点烂!优点:很全面!缺点:没深度!而且例子经不原创 2012-12-19 01:14:27 · 1331 阅读 · 0 评论 -
C#异步编程之:(三)使用TaskScheduler.UnobservedTaskException
不多解释,抄书了:If you don’t catch AggregateException when you call a trigger method, the .NET Framework will escalate the exceptions. By default, this means that the unhandled exceptions will be thrown ag原创 2012-12-19 01:33:36 · 5003 阅读 · 0 评论 -
C#异步编程之:(二)部分心得体会
唉,想好好学学.Net异步编程,可惜没有好的书,又想深入,又想全面。。。现在看得一本Adam Freeman的,感觉很全面,可惜不深入,只能自己慢慢磨石子过河,写点心得:1. 感觉.Net提出TPL的概念是为了抽象线程和Mutex,Event,临界区这些东西。Task是对线程的抽象,而CancellationToken给我的感觉就是提供了对Task的控制。Token其实应该是Task内原创 2012-12-19 00:06:07 · 1090 阅读 · 0 评论 -
Nodejs的Promise库
今天研究了下nodejs的Promise库,发现学到了不少,他的源代码不多,但是很精辟,我加了点注释,可能比不加还难懂。。。凑活着看吧。。库:https://npmjs.org/package/promisePromise/A+规范:http://promises-aplus.github.io/promises-spec/'use strict'var nextT原创 2013-07-11 15:25:57 · 15125 阅读 · 0 评论