基于锁的并发算法 vs 无锁的并发算法
原文链接 作者:Martin Thompson 译者:曹姚君 校对: 方腾飞
上周在由Heinz Kabutz通过JCrete 组织的开放空间会议(unconference)上,我参加一个新的java规范 JSR166 StampedLock的审查会议。StampedLock 是为了解决多个readers 并发访问共享状态时,系统出现的内存地址竞争问题。在设计上通过使用乐观的读操作,StampedLock 比ReentrantReadWriteLock 更加高效;
在会议期间,我突然意思到两点:
- 第一、我想是时候该去回顾java中锁的实现的现状。
- 第二、虽然StampedLock 看上去是JDK很好的补充,但是它视乎忽略了一个事实,即在多个reader的场景里,无锁的算法通常是更好的解决方案。