java 有没有可能只使用volatile变量来实现读写锁?使用原子和volatile?

f87krz0w  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(160)

在java中,是否可以只使用volatile变量来实现读写锁?
否则,如何通过使用原子和易失性变量来实现它?
我有一个面试问题,如何实现读写锁而不使用锁。
当我试图探索使用原子时,采访者避开了使用原子,并建议可以只使用volatile变量来实现它。
我想不出一个方法来实现它只与挥发物。

qpgpyjmq

qpgpyjmq1#

Peterson's algorithm是一个最简单的互斥算法,它只使用volatile变量。我想它可以转换为ReadWriteLock
我也可以推荐The Art of Multiprocessor Programming by Herlihy and Shavit:特别是第2章(它对彼得森锁有很好的解释)、第7章(关于自旋锁)、第8章(关于读写器锁)和第5章(关于共识数,它解释了volatileAtomic*之间的主要区别)。

相关问题