사용자 도구

사이트 도구


java:lazy_evaluation

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판 양쪽 다음 판
java:lazy_evaluation [2020/05/18 17:15]
kwon37xi 만듦
java:lazy_evaluation [2020/05/18 17:41]
kwon37xi
줄 4: 줄 4:
     * [[https://github.com/pivovarit/articles/tree/master/java-lazy-initialization|articles/java-lazy-initialization at master · pivovarit/articles]]     * [[https://github.com/pivovarit/articles/tree/master/java-lazy-initialization|articles/java-lazy-initialization at master · pivovarit/articles]]
   * [[java:guava:supplier|Guava Supplier]]   * [[java:guava:supplier|Guava Supplier]]
 +
 +===== Effective Java 3rd Item 83 - double check =====
 +  * https://github.com/jbloch/effective-java-3e-source-code/blob/master/src/effectivejava/chapter11/item83/Initialization.java
 +  * [[https://github.com/jbloch/effective-java-3e-source-code/issues/8|Double-check idiom for lazy initialization of instance fields. Broken example. · Issue #8 · jbloch/effective-java-3e-source-code]]
 +<code java>
 +    // Double-check idiom for lazy initialization of instance fields - Page 334
 +    private volatile FieldType field4;
 +
 +    // NOTE: The code for this method in the first printing had a serious error (see errata for details)!
 +    private FieldType getField4() {
 +        FieldType result = field4;
 +        if (result != null) // First check (no locking)
 +            return result;
 +
 +        synchronized(this) {
 +            if (field4 == null) // Second check (with locking)
 +                field4 = computeFieldValue();
 +            return field4;
 +        }
 +    }
 +</code>
java/lazy_evaluation.txt · 마지막으로 수정됨: 2020/05/19 09:28 저자 kwon37xi