11 2012 档案
多线程之旅七——GUI线程模型,消息的投递(post)与处理
摘要:基于消息的GUI构架
在过去的日子中,大部分编程语言平台的GUI构架几乎没有发生变化。虽然在细节上存在一些差异,比如在功能和编程风格上,但大部分都是采用了相同的构架来响应用户输入以及重新绘制屏幕。这种构架可以被总结为“单线程且基于消息”。
阅读全文
多线程之旅——内存一致性(未完成)
摘要:在我们的默认思维中,程序就和我们书写的方式从上到下执行。包括编译器帮我们编译后的代码也是如此。这种严格依赖前后执行顺序的操作,在多线程环境下有时候会引起难以想象的bug。设计存储操作的时候,有时候你无法想象到这些操作其实并不是原子操作。
阅读全文
递归与菲波那契数列
摘要:青蛙跳台阶,一次跳上1级,或者一次跳上2级台阶,N个台阶一共有多少种跳法。 最多n! 输入n为2的时候,就是最小的case,不能再分解,所以这是一个关于台阶的函数f(n)n的输入不稳定, 有可能n-1 ,有可能n-2 f(n) 和 f(n-1) f(n-2)的关系是?f(n) = f(n-1) (+/-*) f(n-2)?? 看样子像 f(n) = f(n-1) + f(n-2) ,不确定,数学归纳法还要去补习一下。
阅读全文
多线程之旅六——异步编程模式,自己实现IAsyncResult
摘要:作为模式,只是一种大家认可的经验,模式可以作为大家交流的词汇而存在。下面我们就要介绍几种异步编程模式,AMP、EAP和TAP。当然,法无定法,在我们理解的基础上,我们可以根据具体情况适度修改。下面介绍的只是在通常情况下的两种模式会是以什么样子的形式出现。
一 模型简介
1.APM 异步编程模型
这种模式的特征是一些成对出现的方法,分别以Begin和End作为前缀。
阅读全文