并发栈、消除与分布式协调技术解析
1. 并发栈相关练习
在并发编程中,栈的实现面临着诸多挑战,以下是一系列关于并发栈的练习及分析。
- 设计栈的实现
- 无界基于链表的锁栈 :设计一个基于链表的无界锁栈 Stack<T> 实现。
- 有界基于数组的锁栈 :设计一个使用数组的有界锁栈 Stack<T> ,可以采用单锁和有界数组的方式,也可以尝试设计无锁算法,但会遇到一些困难。
- 无垃圾回收器下的无界无锁栈 :修改无界无锁栈,使其在没有垃圾回收器的环境下工作。可以创建一个线程本地的预分配节点池并回收它们,为避免 ABA 问题,可使用 java.util.concurrent.atomic 中的 AtomicStampedReference<T> 类,该类封装了引用和整数戳。
- 退避策略讨论 :讨论实现中使用的退避策略,思考在 LockFreeStack<T> 对象中对入栈和出栈操作使用相同的共享 Backoff 对象是否合理,以及如何在 EliminationBackoffStack<T> 中在空间和时间上构建退避策略。
- 有界差栈的实现 :实现一个栈算法,假设在执行的
超级会员免费看
订阅专栏 解锁全文
142

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



