找回密码
 立即注册

QQ登录

只需一步,快速开始

Carl

版主

49

主题

213

帖子

962

积分

版主

Rank: 7Rank: 7Rank: 7

积分
962

活字格认证微信认证勋章

QQ
Carl
版主   /  发表于:2009-12-16 10:31  /   查看:6979  /  回复:0
Post by "Colin", 2008-12-04, 13:50
-----------------------------------------------------

最近看到几篇不错的关于并行计算的文章。感觉不错,给大家推荐一下。并行计算的时代就要来了,大家还是要热热身的。
并行思维 [1] 并行思维 [II] 并行思维 [III]每个软件开发人员都不得不面对并行编程。以前以及现在,我们在完成任务时,首先会考虑选择最佳算法,实现语言等。但现在我们必须首先考虑任务的内在并行性。而这反过来又会影响我们对算法和实现的抉择。如果试着在最后考虑并行,还不如不要思考并行。程序也不能很好的工作。
谈谈多线程编程(一)- 安全性策略在多线程编程中,安全是我们考虑的最重要的因素。通常程序员都会使用锁来满足安全要求,但是只用锁并不能写出良好的多线程代码,因此我们有必要更深入一点,对线程安全策略进行更加全面的了解。
谈谈多线程编程(二)- 不变对象不变对象是指对象的状态在构造后不可改变。这从根本上消除了线程间同步的需求,与锁或者阻塞策略不同的是,不变对象对运行时和设计时不会带来任何额外的开销,因此不变对象是多线程编程中一个很基本的策略。
--------------------------------------------------
下面的这个系列就有点深了,看得有点云里雾里的。 但是,了解一下也无妨。

"Loads are not reorderd with other loads" is a FACT!!下面的两个程序在一个双核的CPU上执行。

    P0          P1
    ==========  ==========
    X = 1;      Y = 1;
    R0 = X;     R2 = Y;
    R1 = Y;     R3 = X;



问:如果X, Y volatile 有没有可能使得执行完毕之后 R1 == R3 == 0 呢?
"Loads are not reorderd with other loads" is a FACT!! 续:不要指望 volatile对前一个问题的一种解决方案进行了分析。最后,说明,volatile不能解决那个问题。
"Loads are not reorderd with other loads" is a FACT!! 再续:.NET MM IS BROKEN看过这一片,才算将所有的内容都连在了一起。

今天又看到一篇。这一篇应该和我们的工作比较接近了。
并发数据结构 : .NET Framework 中提供的读写锁
愿 Engine 归于沉寂,Timer 停止运动,Message Queue 不再流淌,Data Source 为我掌握

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部