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

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



