Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- networkobject.networkid
- stateauthority
- nav오브젝트사이거리
- NavMesh
- 유니티 해상도 설정
- m585
- m590 수리
- Github DeskTop Merge
- 유니티 합치기
- 유니티
- navigation
- Unity
- nav거리
- 유니티 브랜치 merge
- 유니티 머지
- unity 병합
- networkobject
- 몬스터
- githubdesktopmerge
- unity git
- 깃허브 데스크탑 병합
- M590
- networkbehaviourid
- 유니티 해상도
- unity merge
- m585 수리
- 깃허브 데스크탑 합치기
- 유니티 해상도 변경
- 오브젝트 깜빡임
Archives
- Today
- Total
집게사장의 꿈
[디자인 패턴] Singleton 본문
[!! 출처 !!]https://www.youtube.com/live/iyeRmq24HVk?si=v1Sqb4xk_Q-uIdOT
클래스가 자신의 인스턴스 하나만 인스턴스화할 수 있도록 보장
단일 인스턴스 손쉬운 전역 액세스
[주로 매니저 객체에 적용]
안티패턴으로 취급되기도함[매우 공감]
커플링 발생이 쉽고, 디버깅 및 테스트 불편
자기 자신의 인스턴스를 static으로 가지고 있음.
쓰레드에서 호출이 되는게 아니라면, 클래스 자체에서 생성 후 반환하면 된다.
Mono에서 구동되는 기본적인 싱글톤 구현
Generic 을 활용한 싱글톤 생성방
오른쪽 상단 내용 GameManager에서 Singleton을 상속받아 전역으로 사용하는 방법
Mono 없이 싱글톤 사용법
Mono 환경이 아니라면 멀티쓰레드 환경에서 문제가 발생할 수 있음.
이때 Lock을 활용하면 해당 구문 안에서 단일 쓰레드 작업을 보장한다.
두번 NULL 체크를 하는 이유는 멀티 쓰레드 환경에서 new 키워드로 생성 중 instance에 접근하게 되면,
IF Instance == null : 이 부합하게 되면서 MissMatch 문제가 발생가능
Volatile를 선언하면, 캐시 최적은 제외되지만 멀티쓰레드 환경에서 안정성을 지켜준다.
처음부터 생성하는 것이 어쩌면 더 안전하다.
'기타' 카테고리의 다른 글
단어 (0) | 2024.05.31 |
---|---|
클래스 다이어 그램 [UML : Class Diagram] (0) | 2024.03.07 |
Privacy Policy (0) | 2024.03.03 |
[파이썬 / VSCode] AssertionError: Torch not compiled with CUDA enabled (0) | 2023.11.30 |
[파이썬]NotImplementedError: Could not run 'torchvision::nms' with arguments from the 'CUDA' backend (0) | 2023.11.30 |