[C++] Lock, Mutex, condition variable

Race Condition 서로 다른 Thread에서 같은 메모리를 공유할 때 같은 자원을 사용하면서 값이 이상하게 되는 것을 race condition이라고 한다.시작하기에 앞서 모든 STL들은 기본적으로 멀티스레드 환경을 제공하지 않는다고 알아야 한다. 아니 스레드1에서 3을 대입하려고 하고 스레드2에서 5를 대입하려고 하는 상황이 아니고 그냥 서로 더하기만 하는데도 오류가 생긴다고? 이건 뭔가 잘못됐다. 이거를 이해하기 위해서는 counter+=1이 실제로 어떻게 … Read more

[C++ Basic] Move Semantics, Lvalue, Rvalue

c++

서론 c++을 이용해서 개발을 하다보면 복사 대신에 이동연산을 통해서 여러 이점을 얻는다는 정보를 확인할 수 있다. 그때 항상 등장하는 개념이 바로 move semanics이다. 그렇기 때문에 오늘은 이 개념에 대해서 알아보고 이동 연산자에 대해서 알아보도록 하겠다. Lvalue, Rvalue 그런데 rvalue에 이름을 붙이는 방법이 있다. Move Semantics 그러니까 move라는거는 그냥 데이터를 원래 가르키고 있던애를 가로채서 연결을 끊고 … Read more

[C++ Basic] Pointer에 대하여

c++

서론 C++에서 진짜 너무 많이 등장하는 개념이 바로 Pointer이다. 메모리의 주소를 관리하고~ 뭐시기~ 항상 등장하는데, 막상 지속적으로 사용하지 않으니 게속해서 까먹는? 대표적인 개념이라고 할 수 있다. 그렇기 때문에 이번에 포인터든 스마트포인터든 한번에 다 정리해보도록 하겠다. Pointer 포인터는 그냥 메모리 주소를 담는 변수이다. int* p 는 p가 가르키는 곳에 int가 있다는 뜻이다. 더블 포인터 포인터 자체를 … Read more

[C++ Basic] Casting

c++

서론 이번시간에는 Casting이라는 개념에 대해서 학습해 보도록 하겠다. 하지만 그 전에 Composition과 Aggregation의 차이에 대해서 먼저 알아보자. 1. Composition 상속이 아니라 멤버 변수에 포함을 시켜서 (Part-on) 클래스를 종속시키는 방법이다.생명주기를 포함하기 때문에 두 클래스의 생명주기가 일치한다는 특징이 있다. 이렇게 보면 MonsterA가 Character이랑 Monster를 상속받지 않고 가지고 있는걸 확인할 수 있다. MonstaerA객체가 사라지게 되면 자연스럽게 Character이랑 Monster도 … Read more

[C++ Basic] Reference, Template, Allocate

c++

Introduction To study C++ basics, you need to understand the fundamental differences from other languages. These differences lie in memory management, handling original variables, and dealing with addresses. We will be learning about these concepts in C++, C++ Basics: The Difference Between Static Allocation and Dynamic Allocation. Since this is a very basic concept that you must know, yet can still be confusing, I will organize it. Static allocation and dynamic allocation are related to compilation, ... Read more