什么是Java中的StampedLock? [英] What is StampedLock in Java?

查看:262
本文介绍了什么是Java中的StampedLock?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究Java代码,我需要在其中实现线程。我正在通过JAVA 8 API,我开始了解Stamped Locks。谁能告诉我为什么在多线程中使用StampedLocks?

I am working on a Java code, I need to implement threading in it. I was going through JAVA 8 API and I come to know about Stamped Locks. Can anyone tell me why to use StampedLocks in multithreading?

提前致谢。

推荐答案

StampedLock是另一种选择ReadWriteLock(由ReentrantReadWriteLock实现)。 StampedLock和ReentrantReadWriteLock之间的主要区别在于:

StampedLock is an alternative to using a ReadWriteLock (implemented by ReentrantReadWriteLock). The main differences between StampedLock and ReentrantReadWriteLock are that:


  • StampedLocks允许对读取操作进行乐观锁定

  • ReentrantLocks是可重入的(StampedLocks不是)

所以如果你有一个你有争用的场景(否则你也可以使用 synchronized 或简单的 Lock )以及比作家更多的读者,使用StampedLock可以显着提高性能。

So if you have a scenario where you have contention (otherwise you may as well use synchronized or a simple Lock) and more readers than writers, using a StampedLock can significantly improve performance.

然而,在得出结论之前,你应该根据你的具体用例来衡量绩效。

However you should measure the performance based on your specific use case before jumping to conclusions.

Heinz Kabutz撰写了关于StampedLocks 在他的时事通讯中,他还提出了关于性能的演示文稿

Heinz Kabutz has written about StampedLocks in his newsletter and he also made a presentation about performance.

这篇关于什么是Java中的StampedLock?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆