如何使 getFoo() 和 getBar() 线程安全?这样一个线程可以同时调用 getFoo() 而另一个线程可以调用 getBar() ......即我不想在类级别锁上同步......
private static Foo foo;
private static Bar bar;
private static void initBar() {
bar = SomeOtherClass.getBarVal();
}
private static void initFoo() {
foo = SomeOtherClass.getFooVal();
}
public static Foo getFoo() {
if (foo == null) {
initFoo();
}
return foo;
}
public static Bar getBar() {
if (bar == null) {
initBar();
}
return bar;
}