差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
java:effective_java:concurrency:use_lazy_initialization_judiciously [2020/02/02 13:30] tony [Enum method] |
java:effective_java:concurrency:use_lazy_initialization_judiciously [2020/02/19 00:32] tony |
||
---|---|---|---|
行 61: | 行 61: | ||
synchronized(Singleton.class) { | synchronized(Singleton.class) { | ||
- | if( instance != null ) { // with locking | + | result = instance; |
- | return instance; | + | if( result != null ) { // with locking |
+ | return result; | ||
} | } | ||
行 106: | 行 107: | ||
===== Reference ===== | ===== Reference ===== | ||
* Java Threads, 3/e | * Java Threads, 3/e | ||
+ | * Effective Java, 3/e | ||
* Java高併發編程詳解:多線程與架構設計, 汪文君 | * Java高併發編程詳解:多線程與架構設計, 汪文君 | ||
* [[https://zh.wikipedia.org/wiki/%E5%8F%8C%E9%87%8D%E6%A3%80%E6%9F%A5%E9%94%81%E5%AE%9A%E6%A8%A1%E5%BC%8F|雙重檢查鎖定模式]] | * [[https://zh.wikipedia.org/wiki/%E5%8F%8C%E9%87%8D%E6%A3%80%E6%9F%A5%E9%94%81%E5%AE%9A%E6%A8%A1%E5%BC%8F|雙重檢查鎖定模式]] |