소개
C 11에서 스레드로부터 안전한 싱글톤을 구현하는 것은 멀티스레딩 도입 이후 논쟁의 주제였습니다. 뮤텍스는 스레드 안전성을 달성하는 간단한 방법을 제공하지만 성능 오버헤드를 초래할 수 있습니다. 이 기사에서는 뮤텍스를 사용하지 않고 다중 스레드로부터 안전한 싱글톤을 구현하는 대체 접근 방식을 살펴봅니다.
동시 대기를 통한 지연 초기화
C 11은 구현을 단순화하는 새로운 언어 기능을 도입합니다. 게으른 초기화. 이제 정적 지역 변수가 이미 초기화된 경우 동시 실행이 대기하므로 수동 잠금이 필요하지 않습니다.
구현
싱글톤 인스턴스를 검색하는 간단한 정적 함수 다음과 같이 구현할 수 있습니다:
<code class="cpp">static Singleton& get() { static Singleton instance; return instance; }</code>
이 함수는 컴파일러가 표준을 올바르게 구현하는 한 C 11에서 올바른 동작을 제공합니다.
싱글톤에 대한 반대
이러한 단순화된 구현에도 불구하고 저자는 일반적으로 싱글톤 사용이 권장되지 않는다고 강조합니다. 그들은 본질적인 한계로 인해 싱글톤을 완전히 피하는 것을 옹호합니다.
추가 참고 사항
위 내용은 ``를 사용하지 않고 C 11에서 스레드로부터 안전한 싱글톤을 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!