gpt4 book ai didi

Java 监视器 - 同步方法是否会阻止任何其他线程进入该对象?

转载 作者:行者123 更新时间:2023-11-30 07:17:23 24 4
gpt4 key购买 nike

以下是否意味着只有一个线程可以在对象的任何方法中?或者多个线程可以使用不同的方法而不是同一个方法吗?为什么?

public class SynchronizedCounter {
private int c = 0;

public synchronized void increment() {
c++;
}

public synchronized void decrement() {
c--;
}

public synchronized int value() {
return c;
}
}

最佳答案

Does the following mean that only ONE thread can be in ANY method of the object?

对于您的具体示例,是的,因为所有方法都是同步的和非静态的。

如果你的类有任何非同步的方法,那么非同步的方法就不会被阻塞。

如果您的类使用同步块(synchronized block)而不是方法并在不同的锁上同步它们,它可能会变得更加复杂。

关于Java 监视器 - 同步方法是否会阻止任何其他线程进入该对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246408/

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