no image
[C++] Mutex
MUTEX GVINS 코드를 분석하면서 Mutex를 처음 접했다. Visual, inertial, gnss, pose... 수많은 함수가 각각의 데이터에 접근해야 하기 때문에 발생하는 문제를 방지해 준다. 여러 쓰레드가 데이터에 접근을 하다 보면 일명 꼬이는 상황이 발생한다. 이렇게 되면 시스템이 불안정 해지기 때문에 Mutex를 이용해서 해당 영역에 대한 접근을 제한한다. 유튜브 강의를 시청 후 간단히 정리하였다. 강의 정보는 글 하단에 기재. 일반적인 mutex 사용 #include std::mutex mutex1 mutex1.lock(); // // // Critical section(mutex로 보호하고 싶은 라인) // // mutex1.unlock(); 일반적인 mutex 단점 -> 하나의 쓰..
2024.01.21
no image
[C++]getline, cin.ignore, string(백준 알고리즘 1330번)
백준 알고리즘 1330번 문제 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어 있다. 출력 첫째 줄에 다음 세 가지 중 하나를 출력한다. A가 B보다 큰 경우에는 '>'를 출력한다. A가 B보다 작은 경우에는 '
2022.01.14
no image
[C++]Data structure alignment(데이터 구조 정렬)
데이터 구조 정렬이 뭐야? C++ 구조체를 학습하면서 알게 된 재밌는 지식이다. 간단하게나마 짚고 넘어가려 한다. Data structure alignment. 구조체에서 데이터가 컴퓨터의 메모리에 접근하거나 배열되는 방법이다. CPU는 자신의 하드웨어 성능을 위해 메모리를 조금 더 효율적으로 관리한다. 데이터는 이 효율적인 관리에 의해 메모리에 Naturally aligned 된다. 잘나가는 맛집이 특제 레시피를 가지고 있듯이 CPU란 녀석도 효율적인 관리를 위한 영업비밀이 있다. 그것은 바로 Data structure padding(구조체 패딩) 이다. Data structure padding 메모리에 Naturally aligned 된 데이터 사이사이에 Data structure padding 이 ..
2022.01.13