如果我在同一个类上同步了两个方法,它们是否可以同时在同一个对象上运行?例如:
class A {
public synchronized void methodA() {
//method A
}
public synchronized void methodB() {
// method B
}
}
我知道我不能在两个不同线程中对同一个对象运行两次 methodA()
。 methodB()
中的相同内容。
但是我可以在 methodA()
仍在运行的同时在不同的线程上运行 methodB()
吗? (同一个对象)
最佳答案
这两种方法都会锁定同一个监视器。因此,您不能同时在不同线程的同一个对象上执行它们(两种方法中的一种会阻塞,直到另一种完成)。
关于java - 如果我在同一个类上同步了两个方法,它们可以同时运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438727/