On Your Mark
2014年1月13日月曜日
Java 基本 設計(Java)
private final FieldType field = computeFieldValue();
private final FieldType field; synchronized FieldType getField() { if (field == null) { field = computeFieldValue(); } return field; }
FieldType getField() { FieldType result = field; if (result == null) { // ここで同期 synchronized (this) { result = field; if (result == null) { // 初期化 field = result = computeFieldValue(); } } } return result; }
FieldType getField() { FieldType result = field; if (result == null) { // 初期化、何回か実行される可能性はある field = result = computeFieldValue(); } return result; }
QooQ
0 件のコメント:
コメントを投稿