Notice
Recent Posts
Recent Comments
Link
관리 메뉴

λͺ©λ‘μ „체 κΈ€ (1099)

KoreanFoodie's Study

[C++ κ²Œμž„ μ„œλ²„] 2-1. Reference Counting

[C++ κ²Œμž„ μ„œλ²„] 1-25. Reference Counting 핡심 : 1. λ©€ν‹° μ“°λ ˆλ“œ ν™˜κ²½μ—μ„œ, 생 포인터λ₯Ό μ‚¬μš©ν•˜λŠ” 것은 μ–Έμ œλ‚˜ μœ„ν—˜ν•˜λ‹€. μ˜λ„μΉ˜ μ•Šκ²Œ delete 된 포인터λ₯Ό μ‚¬μš©ν•˜λ €κ³  ν•  μˆ˜λ„ 있기 λ•Œλ¬Έμ΄λ‹€. 2. μΌλ°˜μ μœΌλ‘œλŠ” Smart Pointer λ₯Ό 톡해 이런 문제λ₯Ό ν•΄κ²°ν•˜λŠ”λ°, 핡심적인 뢀뢄은 κ²°κ΅­ Reference Count λ₯Ό μ²΄ν¬ν•˜μ—¬ nullptr 에 μ ‘κ·Όν•˜λŠ” 것을 λ§‰λŠ” 것이닀! λ¬Όλ‘  SharedPtr κΉŒμ§€ μ œλŒ€λ‘œ 써 μ£Όμ–΄μ•Ό 문제λ₯Ό 막을 수 μžˆλ‹€. λ©€ν‹°μ“°λ ˆλ“œ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  λ•Œ, 생 포인터λ₯Ό μ‚¬μš©ν•˜κ²Œ 되면 μ˜λ„μΉ˜ μ•Šκ²Œ nullptr 에 μ ‘κ·Όν•˜λŠ” 경우λ₯Ό λ§žλ”±λœ¨λ¦¬κ²Œ λœλ‹€. μ•„λž˜μ˜ μ˜ˆμ‹œλ₯Ό 보자. λ ˆμ΄μŠ€μ™€ 터렛이 μžˆλ‹€κ³  ν•˜κ³ , 터렛이 레이슀λ₯Ό νƒ€κ²ŸνŒ…ν•˜μ—¬ 격좔 μ‹œν‚€λŠ” 것을 상상해 보자! ..

Game Dev/Game Server 2023. 8. 21. 19:07
[C++ κ²Œμž„ μ„œλ²„] 1-23. DeadLock 탐지

[C++ κ²Œμž„ μ„œλ²„] 1-23. DeadLock 탐지 핡심 : 1. λ°λ“œλ½μ„ μž‘λŠ”λ‹€λŠ” 것은, κ²°κ΅­ 락을 μž‘λŠ” 방식에 μžˆμ–΄ 사이클이 ν˜•μ„±λ˜λŠ”μ§€λ₯Ό νŒλ‹¨ν•˜λŠ” 것과 λ™μΌν•˜λ‹€. 2. DFS λ₯Ό μ‘μš©ν•˜μ—¬, 사이클이 μƒκΈ°λŠ”μ§€ μ—¬λΆ€λ₯Ό κ²€μ‚¬ν•˜λ©΄ DeadLock 상황을 미리 κ²€μΆœν•  수 μžˆλ‹€. DeadLock 의 경우, 개발 λ‹¨κ³„μ—μ„œλŠ” λ‚˜μ˜€μ§€ μ•ŠμœΌλ‚˜, 막상 라이브 μ„œλΉ„μŠ€λ₯Ό ν•˜λ©΄ κ²€μΆœλ˜λŠ” κ²½μš°κ°€ λ§Žλ‹€. κ΅¬μ‘°μ μœΌλ‘œλŠ” λ°λ“œλ½μ΄ 걸릴 둜직이 μžˆμŒμ—λ„, μ ‘μ†μž μˆ˜κ°€ λ§Žμ§€ μ•Šμ•„ λ°λ“œλ½μ΄ 걸리지 μ•Šμ„ 수 μžˆλ‹€. 이런 타이밍 적인 μ΄μŠˆμ— μ˜μ‘΄ν•˜μ§€ μ•Šκ³ , DFS λ°©μ‹μœΌλ‘œ 사이클이 μžˆλŠ”μ§€λ₯Ό κ²€μ‚¬ν•˜μ—¬, λ°λ“œλ½ 문제λ₯Ό 미리 방지할 수 μžˆλ‹€. λ°λ“œλ½μ„ μž‘λŠ”λ‹€λŠ” 것은, κ²°κ΅­ 락을 μž‘λŠ” 방식에 μžˆμ–΄ 사이클이 ν˜•μ„±λ˜λŠ”μ§€λ₯Ό νŒλ‹¨ν•˜λŠ” 것과 λ™μΌν•˜κΈ° λ•Œλ¬Έμ΄..

Game Dev/Game Server 2023. 8. 8. 21:28