并发对象与共享内存寄存器知识解析
并发对象相关练习题
在并发对象的学习中,有一系列练习题帮助我们深入理解相关概念。
1. 关于一致性的问题
- 解释为什么静止一致性是可组合的。
- 对于包含两个寄存器组件的内存对象,如果两个寄存器都是静止一致的,那么该内存也是静止一致的。反之,如果内存是静止一致的,单个寄存器是否也是静止一致的,需要给出证明或反例。
- 给出一个是静止一致但不是顺序一致的执行示例,以及一个是顺序一致但不是静止一致的执行示例。
- 判断给定历史记录是否是静止一致、顺序一致或可线性化的,并说明理由。
- 如果从可线性化定义中去掉条件L2,得到的属性是否与顺序一致性相同,需要进行解释。
2. 代码相关问题
- 证明某个定理的“仅当”部分。
- 对于 AtomicInteger 类,其 compareAndSet 和 get 方法有特定功能。给出一个FIFO队列实现不是可线性化的示例。
- 对于给定的Java类,根据Java内存模型判断 reader 方法是否会除以零。
- 判断某个方法实现是否是无等待的、有界无等待的,还是都不是。
- 对于一个队列实现,其 enq 方法没有线性化点,需要给出示例说明线性化点不能在特定行发生,并探讨 enq 方法是否可线性化。
- 证明顺序一致性是非阻塞的。
以下是相关代码示例:
超级会员免费看
订阅专栏 解锁全文
1567

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



