我正在尝试理解同步方法和静态同步方法之间的主要区别。
例如,考虑具有两个实例e1、e2的Employee类。
synchronized method1() {
//--- blah blah---
}当e1通过获取对象级锁来执行method1()时,e2将等待被e1释放的锁。
在静态同步的情况下,当e1在类级别持有锁时,e2不能进入该块。
static synchronized method1() {
//--- blah blah---
}这两种情况有什么不同?我看不出静态和非静态同步方法访问有什么不同。
发布于 2013-03-22 01:45:12
在您的第一个示例中,同步是在实例级别操作的,因此如果您同时调用e1.method1()和e2.method1(),则允许它们并行运行。
在第二个示例中,同步是在类级别操作的,因此如果同时调用e1.method1()和e2.method1(),它们将不会并行运行。
https://stackoverflow.com/questions/15548974
复制相似问题