일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Reflectivity
- PointCloud Frame
- Multi threaded
- nvidia
- Azimuth
- Veloview
- 3-sigma rule
- Data Packet
- ApolloAuto
- Quaternion 연산
- HDmap
- coordinate system
- object detection
- Smart Pointer
- timestamp
- Phase Lock
- VLS-128
- Coding Test
- Alpha Prime
- Phase Offset
- Single threaded
- Alpha Prime(VLS-128)
- Frame rate
- Motion compensate
- Data Race
- lidar
- PYTHON
- PointCloud
- Interference Pattern
- 센서셋
- Today
- Total
목록Modern C++ (6)
엔지니어 동행하기

Concurrency Programming에서 생길 수 있는 대표적인 문제로 Data Race가 있습니다. 이를 해결하기 위해 std::mutex를 사용하게 되는데, mutex의 operations를 그대로 사용하는 경우 개발자가 실수를 하기 쉽습니다. 따라서 std::lock_guard를 사용하면 실수를 없앨 수 있습니다. ( 그런데 이는 Concurrency Programming의 또 다른 Dead Lock이라는 문제를 유발할 수 있습니다. 이를 개선한 여러 lock manager들-unique_lock, scoped_lock, shared_lock 또한 존재합니다.) 이에 대해 자세히 하나씩 설명드리겠습니다. 먼저 다음 포스팅을 참고하시면 좋습니다. 2022.08.07 - [Modern C++/Co..

처음 접하는 경우 헷갈릴 수 있는 개념으로, Concurrency Programming과 Parallel Programming의 차이에 대해 확실히 구분하고 갈 필요가 있습니다. 또한 이러한 프로그래밍 방식을 사용하기 위해 기초적으로 알아야 하는 std::thread에 대해 설명드리겠습니다. Single threaded process VS Multi threaded process Thread에 관한 기본적인 설명은 다음 블로그를 참고하면 됩니다. https://goodgid.github.io/What-is-Thread/ 쓰레드(Thread)란 무엇인가? Index goodgid.github.io 기본적으로 Process에는 Main Thread가 존재하며 이외에 다른 Thread가 없을 경우 Single..
Floating Point 가 같은지 비교할 때, == operator를 사용하면 의도하지 않은 결과를 얻게 됩니다. 그 이유는 컴퓨터가 Floating Point를 정확히 그 값으로 가지고 있는 것이 아니라 그 값과 가장 가까운, 컴퓨터로 표현할 수 있는 값으로 가지고 있기 때문입니다. 그렇다면 Floating Point가 같은지 비교하기 위해서는 어떻게 해야 하는지에 대한 내용을 정리하도록 하겠습니다. epsilon() epsilon() 함수는 1.0과 Type T로 나타낼 수 있는 1.0보다 큰 가장 작은 값의 차이를 출력합니다. 즉, Type T로 나타낼 수 있는 0에 가장 가까운 값을 반환합니다. 예제 1 : Floating Point가 같은 값인지 판단 epsilon()함수의 반환 값을 이용하..
Smart Pointer는 RAII idiom 기법을 따르며, C++에서 메모리 관리를 위한 핵심 개념입니다. 그중 두 번째로 Shared ownership을 제공하는 std::shared_ptr에 대해 설명드리겠습니다. std::shared_ptr는 잘못 사용할 경우, Circular reference가 발생해 Memory leak이 생길 수 있어 주의가 필요합니다. 또한 std::shared_ptr를 Class의 member variable로 사용할 때, std::unique_ptr과 어떻게 다른지 분석하였습니다. Shared ownership 하나의 Object를 여러 개의 Pointer가 가리킬 수 있다. 그래서 RAII idiom을 따르기 위해 reference counter를 사용한다. 즉, ..
Smart Pointer는 RAII idiom 기법을 따르며, C++에서 메모리 관리를 위한 핵심 개념입니다. 그중 첫 번째로 Exclusive ownership을 보장하는 std::unique_ptr에 대해 다뤄보겠습니다. Exclusive Ownership (Heap memory 상의) 하나의 Object는 하나의 Pointer만 가리킬 수 있음을 의미합니다. #include #include struct D { D() { std::cout
C++ 은 Memory(RAM)을 개발자가 직접 관리할 수있는 HW와 매우 밀접한 언어입니다. 그렇기 때문에 더욱 빠른 코드를 작성할 수 있지만, 잘못 사용할 경우 Segmentation fault, Memory Leak과 같은 문제가 발생할 수 있습니다. 따라서 Smart Pointer를 적절히 사용할 수 있어야 합니다. Smart Pointer 사용 이유 RAII ( Resource Acquisition Is Initailization) : Resource의 life cycle과 Object의 life cycle을 일치시켜 Memory Leak을 원천적으로 방지하기 위함 - Resource : Heap memory, Thread, Mutex, File access, DB connection 등이 이에..