Pennant的日常
分享工作上的点点滴滴
posts - 75,comments - 21,views - 66454
09 2009 档案
《多处理器编程的艺术》读书笔记(3)--- 双线程解决方案
摘要:我们先从两个虽然存在不足但却十分有趣的锁算法讲起。LockOne类双线程的锁算法遵循以下两点约定:线程的标识为0或1,若当前调用者的标识为i,则另一方为j = 1 - i;每个线程通过调用ThreadID.get()获取自己的标识。用writeA(x = v)表示A将值v赋予域x,用readA(v == x)表示A从域x中读取值v。在值不重要的情形下,可以省略v。下图的writeA(flag[i]... 阅读全文
posted @ 2009-09-30 17:25 汝熹 阅读(1281) 评论(4) 推荐(0) 编辑
《多处理器编程的艺术》读书笔记(2)--- 互斥
摘要:互斥是多处理器程序设计中最常见的一种协作方式。我们将某一资源放入临界区内:某个时刻仅能被一个线程执行,称这样的特征为互斥。实现互斥的标准方法就是采用一个具有以下接口的ILock对象。[代码]一个线程若执行了setlock()方法调用,则称该线程获得一个锁(或称上锁);若执行了unlock()方法调用,则称该线程释放这个锁(或称开锁)。上面共享计数器的实现中,就是使用ILock域来保证对象的互斥特性... 阅读全文
posted @ 2009-09-29 10:40 汝熹 阅读(641) 评论(0) 推荐(0) 编辑
《多处理器编程的艺术》读书笔记(1)--- 并行的困境和加速比
摘要:从单处理器升级到n路关联多处理器应该提高了n倍的计算能力,实际是这样吗?假设有5个朋友要粉刷一套有5个房间的屋子。如果所有房间大小都一样,那么可以指定每人负责一间,只要这5个人以同样的速度来粉刷,就能获得相当于由一个人完成整个粉刷工作5倍的加速比。如果每个房间的大小不一,问题就复杂多了。例如,若有一个房间是其他房间的2倍,那么这5个人同时工作就不可能获得5倍的加速比,因为整个任务的完成时间取决于粉... 阅读全文
posted @ 2009-09-28 19:38 汝熹 阅读(780) 评论(1) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示