Sub*_*dal 0 java multithreading
我有一个工厂类,假设通过调用方法ApppleFactory创建一个新实例.只有一个共享实例.ApplegetApple()ApppleFactory
class ApppleFactory {
private static Apple apple = null;
private ApppleFactory() {
}
public static Apple getApple() {
apple = new Apple();
//do some other work on this apple instance
return apple; //finally return it
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果多个线程访问它getApple()并使用这个可变数据, apple则可能存在不安全的可能性.如何克服这个问题?
显然,这个static领域就是问题所在.摆脱它.
class ApppleFactory {
public Apple getApple() {
Apple apple = new Apple();
//do some other work on this apple instance
return apple; //finally return it
}
}
Run Code Online (Sandbox Code Playgroud)