【发布时间】:2015-03-08 21:27:29
【问题描述】:
简单的问题:
为什么这是首选:
public class Foo {
final private static Object foo = new Object();
public static void doSomething() {
synchronized(Foo.foo) {
//code
}
}
}
在此:
public class Foo {
public static void doSomething() {
synchronized(Foo.class) {
//code
}
}
}
或者这个:
public class Foo {
public synchronized static void doSomething() {
//code
}
}
?
对我来说,这些看起来基本相同,所以我不确定同步访问静态字段的最佳方法是什么,或者为什么一个会比另一个更好,但我听说第一个通常是首选。
【问题讨论】:
标签: java multithreading synchronization