线程1在java同步方法1中执行,线程2可以在java同步方法2中执行吗?

想知道是否有人可以帮我解决这个问题. (学生)

假设我们有两个线程,“Thread1”& “线程2”.如果Thread1在方法1中执行,那么Thread2可以在method2中执行吗?

void method1() {
    synchronized (this) {
    }
}

void method2() {
    synchronized (this) {
    }
}

我想是的,Thread2可以输入,因为“this”只是该方法的实例或者没有,因为“this”是该类的实例而Thread1保留在它上面.

最佳答案
没有与特定方法关联的监视器 – 有一个与对象关联的监视器.因此,如果您尝试在两个方法中同步对象,则第二个线程将阻塞,直到第一个线程释放监视器.

(就我个人而言,我不喜欢在此同步 – 我同步对一个只有我的班级才能访问的对象的引用.但这是另一回事.)

转载注明原文:线程1在java同步方法1中执行,线程2可以在java同步方法2中执行吗? - 代码日志