일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 뮤텍스
- NotFoundException: String resource ID #0x0
- Java
- 스핀락
- 포톤
- 유니티슈팅게임
- mutex
- Unity
- map
- 안드로이드스튜디오
- 지크슈
- unityAR
- 유니티
- 광유다
- 동기화
- 바이너리세마포
- 세마포
- Vector
- unorderedmap
- ARface
- semaphore
- StartActivityForResult
- list
- unorderedset
- dependencyResilutionManagement
- photon
- registerForActivityResult
- C++
- 게임개발
- SpinLock
- Today
- Total
목록C++ (3)
와와
테이블이 한 개만 있는 식당이 있다고 가정해보자! 식당에 여러 손님이 동시에 들어와 한 테이블에 앉으려고 하면 굉장한 혼란이 발생할 것이다. 여기서 벌어질 수 있는 혼란 중의 하나로, 경쟁 조건( race condition )을 뽑을 수 있다. 경쟁 조건은 여러 프로세스/스레드가 동시에 같은 데이터를 조작할 때 타이밍이나 접근 순서에 따라 결과가 달라질 수 있는 상황을 의미한다. 그럼 경쟁 조건을 막기 위해선 어떻게 해야할까? 아주 간단하다. 하나의 스레드의 진입만 허용하고 그동안 다른 스레드의 진입을 금지하면 된다. 이것을 상호배제( mutual exclusion )라고 한다. 완벽한 동기화를 위해 상호 배제를 위한 방법 3가지를 알아보도록 하겠다! 식당 비유를 다시 생각해보자면 완벽한 동기화를 위해서..
Vector 내부 구현: 동적 배열 기반. 요소들이 메모리 상에서 연속적으로 저장 (요소끼리 간격 없음) [요소1][요소2][요소3][요소4]...[요소n] 접근 시간: 인덱스를 통한 랜덤 접근 : O(1)의 시간 복잡도 메모리 할당 초기에는 일정 크기의 메모리 블록을 할당하여 요소 저장. 공간이 가득 차면 현재 크기의 두 배에 해당하는 새로운 메모리 블록을 할당하고, 기존 요소들을 복사한 뒤 기존 메모리를 해제 삽입과 삭제: 메모리 상에서 요소가 연속적으로 위치하기 때문에, 중간에 요소를 삽입하거나 삭제하는 작업은 O(n)의 시간 복잡도, 맨 끝에 요소를 추가하거나 삭제하는 작업은 상수 시간 복잡도(O(1))를 가짐 vector 예시 #include #include int main() { std::ve..
vector밖에 모르는 나...의 보다 쾌적한 코딩 활동을 위해 map, set에 대해서 공부해보겠습니다. vector VS map VS set vector 정수 인덱스 사용, 값을 저장 map 키 인덱스 사용, 키-값 쌍을 저장, 빠른 검색. set 중복 요소 허용X, 키 저장, 빠른 검색. ordered map VS unordered map ordered map (std::map) : 키에 따라 정렬된 상태로 데이터 유지 : 이진 검색 트리(대부분의 구현에서는 레드-블랙트리)를 사용하여 구현 : 키에 대해 순서대로 반복하거나 특정 순서를 유지해야 할 때 유용 : 주요 연산(검색, 삽입, 삭제)은 로그 시간 복잡도 '0(log n)' unordered map (std::unordered_map) : 해..