Section 43.1: 정적 초기화 방식의 Singleton
public class Singleton
{
private readonly static Singleton instance = new Singleton();
private Singleton() { }
public static Singleton Instance => instance;
}
위 구현은 instance
객체가 정적 생성자에서 초기화되므로 스레드 안전 (thread-safe) 하다. CLR 에서는 이미 모든 정적 생성자가 스레드 안전한 방식으로 실행됨을 보장하고 있다.
instance
값을 변경하는 것은 스레드 안전한 조작이 아니므로, readonly
속성을 통해 초기화 시점 이후부터는 변경 불가능함 (immutability) 을 보장한다.
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
43.3: 스레드-안전한 지연된 Singleton (Double Checked Locking - 이중 검사 잠금 방식) (0) | 2022.07.25 |
---|---|
43.2: Lazy<T> 를 이용한 지연된 (lazy) 방식의 스레드-안전한 Singleton (0) | 2022.05.19 |
42.3: Static 키워드 (0) | 2022.05.19 |
42.2: 정적 (Static) 클래스의 수명 (lifetime) (0) | 2022.05.19 |
42.1: 정적 (Static) 클래스 (0) | 2022.04.27 |