我正在研究Java代码,我需要在其中实现线程。我正在通过JAVA 8 API,我了解了Stamped Locks。谁能告诉我为什么在多线程中使用StampedLocks?
提前致谢。
最佳答案
StampedLock是使用ReadWriteLock的替代方法(由ReentrantReadWriteLock实现)。 StampedLock和ReentrantReadWriteLock之间的主要区别在于:
因此,如果您遇到争用的情况(否则,最好使用
synchronized
或简单的Lock
),并且读取者多于写入者,那么使用StampedLock可以显着提高性能。但是,您应该在得出结论之前,根据您的特定用例来衡量性能。
Heinz Kabutz写了StampedLocks in his newsletter,他也写了a presentation about performance。