并发编程中的共识与自旋锁
在并发编程领域,共识的普遍性和自旋锁的应用是重要的研究方向。下面将详细介绍相关的理论和算法,并对其性能进行分析。
共识的普遍性
在并发编程中,存在一些关于共识的重要引理和定理。
- 引理 6.4.4 :在某一操作的第 10 行之前,有
head[A].seq ⩾ start(A)。这是因为head[A]在第 20 行或第 28 行被设置为指向 A 的最后追加节点。在第 9 行调用Node.max()之后,max(head[A], head[0], ..., head[n - 1])就是head[A].seq,根据引理 6.4.3 可得出该结论。 - 引理 6.4.5 :始终有
|concur(A)| ⩾ head[A].seq - start(A) ⩾ 0。下界由引理 6.4.4 得出,上界由等式 6.4.1 得出。 - 定理 6.4.1 :某算法是正确且无等待的。因为 A 执行主循环的次数不超过
n + 1次,每次成功迭代时,head[A].seq增加 1。经过n + 1次迭代后,根据引理 6.4.5 有|concur(A)| ⩾ head[A].seq - start(A) ⩾
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



