언어 및 엔진(79)
-
[C++] Multi Process / Multi Thread
Multi Process / Multi Thread Multi Process 컴퓨터에서 연속적으로 실행되고 있는 프로그램. 메모리에 올라와 실행되고 있는 프로그램의 인스턴스. 운영체제로부터 시스템 자원을 할당받는 작업의 단위. 동적인 개념으로는 실행된 프로그램을 의미한다. 부모 자식간의 관계여도 독립적인 메모리 공간을 가지고 있고, 공유하지 않음 Multi Thread 프로세스 내에서 실행되는 여러 흐름의 단위. 프로세스의 특정한 수행 경로. 프로세스가 할당 받은 자원을 이용하는 실행의 단위. 부모 자식간의 관계라면 메모리 공간을 공유하고 있음 장점 : 메모리를 공유하기 때문에 컨텍스트 스위칭 시에 시간 손실이 줄어든다. 전역, 정적, new, malloc에 의한 모든 자료 공유 단점 : 하나의 변수를 ..
2024.04.19 -
[C++] Modern C++
Modern C++ Auto 변수 정의 시 자료형을 지정해 주지 않아도 초기화 시 타입이 결정됨. range based for for문을 쉽고 안전하게 쓰기 위한 것 값 복사 방지 : 레퍼런스 받아오기 값 변경 방지 : const이용 enum class 강한 형 사용 / 범위 unscoped enumeration : 자료형이 붙지 않음 scoped enumeration : 자료형이 붙음 클래스로 선언하면 네임스페이스를 붙여야 한다. non-static data member initializers 멤버변수의 선언과 동시에 초기화 가능 initializer lists 초기화 리스트 전용 타입. 함수의 인자, 유저 정의형, STL 컨테이너의 초기화 가능 default / delete definition def..
2024.04.19 -
[C++] 메모리 구조와 메모리 단편화
메모리 구조와 메모리 단편화 메모리 구조 프로그램을 실행할 때 운영체제에서 메모리에 공간을 할당하는데 그 공간은 4가지로 분류 Code - 코드 영역 Data - 데이터, 전역.정적 변수 Stack - 지역 변수, 매개 변수, 컴파일 결정 Heap - 런 타임 결정, 사용자의 동적 할당 메모리 단편화 사용 가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태. 박싱, 언박싱으로 메모리에 빠진 부분이 많은 상태.
2024.04.19 -
[C++] Smart Pointer
Smart Pointer 스마트 포인터 메모리 누수(메모리를 할당해 놓고 해제를 안하는 등)를 방지하기 위해 자동으로 메모리 해제를 시켜주는 포인터 unique_ptr 하나의 스마트 포인터 만이 특정 객체를 소유할 수 있도록 객체에 소유권 개념을 도입한 스마트 포인터. 해당 객체의 소유권을 가지고 있을 때만 소멸자가 해당 객체를 소멸할 수 있다. 1 : 1 shared_ptr 하나의 특정 객체를 참조하는 스마트포인터가 총 몇 개인지 참조. 이렇게 참조하고 있는 스마트 포인터의 개수를 참조 횟수(Reference Count)라고 하는데, 참조 횟수는 특정 객체에 새로운 shared_ptr이 추가될 때 마다 1씩 증가하고 수명이 다할 때마다 1씩 감소. 따라서 ,shared_ptr의 수명이 다해 참조 횟수가..
2024.04.19 -
[C++] Overloading / Overriding
Overloading / Overriding Overloading 함수 중복 정의. 같은 이름의 함수에 매개 변수를 다르게 사용해서 매개변수에 따라 다른 함수 실행 동일 클래스 내 혹은 상속관계에서 가능 Overriding 함수 재정의. 덮어 쓰다 상속받았을 때 부모 클래스의 함수를 사용하지 않고 다른 기능을 실행할 때 자식클래스에 다른 이름, 매개변수로 재정의해서 사용하는 것 상속 관계에서만 가능
2024.04.19 -
[C++] Static / Extern
Static / Extern Static 전역변수 선언 시 내부 연결 속성을 가짐, 정적 맴버 변수 지역변수 선언 시에도 사용 가능 지역변수에 사용 시 자동 주기 -> 정적 주기 == 정적 변수 지역변수로 선언해도 해당 블록이 끝나도 값을 유지함 Extern 다른 소스파일에 선언된 전역변수를 사용할 때 사용 함수에도 사용 가능
2024.04.19