auto commit

This commit is contained in:
CyC2018
2018-05-25 22:11:55 +08:00
parent 515eb99c8c
commit 6dbef5559d
4 changed files with 48 additions and 62 deletions

View File

@ -47,7 +47,7 @@
以下实现中,私有静态变量 uniqueInstance 被延迟化实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance从而节约资源。
这个实现在多线程环境下是不安全的,如果多个线程能够同时进入 if(uniqueInstance == null) 那么就会多次实例化 uniqueInstance。
这个实现在多线程环境下是不安全的,如果多个线程能够同时进入 if (uniqueInstance == null) 并且此时 uniqueInstance 为 null那么多个线程会执行 uniqueInstance = new Singleton(); 语句,这将导致实例化多次 uniqueInstance。
```java
public class Singleton {
@ -350,8 +350,8 @@ public class Client {
public static void main(String[] args) {
AbstractFactory abstractFactory = new ConcreteFactory1();
AbstractProductA productA = abstractFactory.createProductA();
abstractFactory = new ConcreteFactory2();
productA = abstractFactory.createProductA();
AbstractProductB productB = abstractFactory.createProductB();
// do something with productA and productB
}
}
```