- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在编写 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 .
关于java - Java 中的 StampedLock 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26094200/
概览 在 JDK 1.8 引入 StampedLock,可以理解为对 ReentrantReadWriteLock 在某些方面的增强,在原先读写锁的基础上新增了一种叫乐观读(Opt
我正在调查基于 Java8 的 StampedLock ( javadoc here ) 锁定缓存,但我无法在网上找到令人信服的实现,尽管阅读了文章喜欢StampedLock Idioms . 在对
我们介绍了读写锁,学习完之后你应该已经知道“读写锁允许多个线程同时读共享变量,适用于读多写少的场景”。那在读多写少的场景中,还有没有更快的技术方案呢?还真有,Java 在 1.8 这个版本里,提供了一
我正在使用 StampedLock 实现缓存读取或加载方法,我想知道是否可以改编 javadoc 中的示例比这更好。 作者 Doug Lea 给出了一个“乐观读”示例和一个“将读锁升级为写锁”示例,但
http://winterbe.com/posts/2015/04/30/java8-concurrency-tutorial-synchronized-locks-examples/包含此代码: S
我一直在使用 ReadWriteLock `s 来实现/维护锁定习语。 自 JDK8 StampedLock已介绍。由于 RWLocks 以其缓慢和糟糕的性能而闻名,StampedLock 看起来像是
我正在编写以下代码。 CreateThread.java import java.util.concurrent.locks.*; class CreateThread { public s
给定来自 Oracle 文档的代码示例 https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/StampedLock
我正在编写 Java 代码,我需要在其中实现线程。我正在通过 JAVA 8 API 并开始了解 Stamped Locks。谁能告诉我为什么在多线程中使用 StampedLocks? 提前致谢。 最佳
一、写在开头 我们在上一篇写ReentrantReadWriteLock读写锁的末尾留了一个小坑,那就是读写锁因为写锁的悲观性,会导致 “写饥饿”,这样一来会大大的降低读写效率,而今天我们就来将
在 ReentrantLock 和 StampedLock 之间进行选择的用例应该是什么?例如,如果我有 10 个读者和 10 个写者,应该选择哪种锁?如果我有 20 名读者和 1 名作者,该选择哪一
我正面临关于 StampedLock 的奇怪行为.以下是主要有问题的代码行: StampedLock lock = new StampedLock(); long stamp1 = lock.read
从文档中还不清楚,如果在保持readLock的情况下尝试进行写入操作,那么读写器线程会发生什么情况。 我说的是这个时机: 阅读器线程(或某些阅读器线程)进入并获取readlock,目的是在某些多字段对
这comparison of StampedLock and other locks表明StampedLock随着竞争的加剧,是最快的。然而,这篇文章和其他各种文章都没有列出为什么它更快。它似乎使用与
最近我了解到存在StampedLock ? https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/locks/StampedL
我是一名优秀的程序员,十分优秀!