gpt4 book ai didi

java - synchronized vs ReentrantLock 无竞争锁

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:56:29 26 4
gpt4 key购买 nike

ReentrantLock 如何针对完全无竞争的锁获取执行同步?

假设你打算实现一个双锁类(这意味着你需要 2 个不同的锁并且同步是不够的,就像在 LinkedBlockingQueue 中那样),其中放置和获取锁的获取是由线程 1 和线程 2 完成的(总是),这意味着锁是无竞争的,并且线程局部性的原则进来了,ReentrantLock 如何执行同步(这将需要完全锁定队列)?

最佳答案

大多数情况下,当 3 个或更多线程竞争时,ReentrantLock 获胜,但这取决于硬件、操作系统、JVM 版本及其选项。

Martin Thompson 在他的博客中发表了关于 ReentrantLock 对比同步块(synchronized block)和偏向锁的发现:

http://mechanical-sympathy.blogspot.com/2011/11/java-lock-implementations.html

http://mechanical-sympathy.blogspot.com/2011/11/biased-locking-osr-and-benchmarking-fun.html

关于java - synchronized vs ReentrantLock 无竞争锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11698418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com