gpt4 book ai didi

java - 同步相对于锁 API 的优势

转载 作者:搜寻专家 更新时间:2023-11-01 04:07:37 26 4
gpt4 key购买 nike

我在每个博客或解释中都看到了 Locks API 相对于同步的优势。

我想知道同步比锁有什么优势,或者我应该更喜欢同步而不是锁的任何场景。

最佳答案

您是指同步语句和方法关键字吗?隐式锁定的主要优点是需要更少的代码并在离开其范围时自动解锁。对于简单的锁定/等待操作,它是完美的解决方案。

所以下面的代码

public void myMethod() {
synchronized(this) {
// concurrent stuff
}
}

完全等同于

final private Lock lock = new ReentrantLock();

public void myMethod() {
lock.lock();
try {
// concurrent stuff
}
finally {
lock.unlock();
}
}

synchronized public void myMethod() {
// concurrent stuff
}

您还可以使用不同的对象进行同步(它们不会受到任何影响,只是控制点):

final static private Object sync = new Object();

public void method1() {
synchronized(sync) {
// concurrent code involving static members
}
}

public void method2() {
synchronized(this) {
// concurrent code affecting this instance
}
}

关于java - 同步相对于锁 API 的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31364307/

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