【发布时间】:2013-11-01 23:13:27
【问题描述】:
假设有以下代码:
class MyClass {
synchronized void myMethod1() {
//code
}
synchronized void myMethod2() {
//code
}
}
现在假设myMethod1() 和myMethod2() 访问不同的数据;现在如果有两个线程,线程 A 只调用 myMethod1(),线程 B 只调用 myMethod2()。
如果线程 A 正在执行myMethod1(),线程 B 是否会阻塞等待 myMethod2(),即使它们没有访问相同的数据并且没有理由这样做?据我所知,同步方法对实例方法使用this对象的监视器,对静态函数使用MyClass.class对象的监视器。
【问题讨论】:
标签: java multithreading synchronization