본문 바로가기
반응형

C++3

[프로그래밍/C++] 헤더파일과 소스파일을 분리하는 이유 헤더파일과 소스파일을 분리하는 이유에 대해 알아보기 전에 선언과 정의에 대해 먼저 알아보자  선언과 정의" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 C++을 사용하면 int a; 와 같이 변수를 선언해 주라는 말을 들었을 것이다.선언은 말 그대로 어떤 변수나 함수를 사용하겠다고 컴파일러에게 변수의 존재와 타입을 알려주는 것이고, 정의는 변수나 함수가 어떤 값이나 동작을 하는지 정의해 메모리에 할당하는 것이다. 선언과 정의의 예는 아래와 같다. int a(int); // 선언 했지만 정의는 하지 않음extern const int a; // 선언 했지만 정의는 하지 않음extern const int b = 1; // b를 정의함struct S{ int n; // S구조.. 2024. 2. 8.
[프로그래밍/C++] 스레드(Thread) 사용하기 (2) HTML 삽입 미리보기할 수 없는 소스 스레드에서 컨텍스트 스위치란? 특정 스레드를 실행하다가 다른 스레드를 실행하는 과정을 의미한다. 그렇다면 왜 중간에 다른 스레드를 실행하는 걸까? 프로그램을 실행하다 보면 동시에 여러 프로그램이 실행되는 걸 볼 수 있다. 물론 여러 코어에서 동시에 프로그램을 실행해 작업을 할 수도 있지만, 하나의 코어에서 순간적으로 A작업, B작업을 번갈아가며 실행해 동시에 실행되는 것처럼 보이게 할 수도 있다. 즉, 여러 작업이 동시에 실행되도록 번갈아가며 실행하기 위해 컨텍스트 스위칭을 한다고 생각하면 된다. 여기서 멀티 스레드를 사용할 때, 주의해야 할 점이 있다. 예를 들어 A=10 이고, 스레드 1은 A+=1이라는 연산을 하려고 한다. 스레드 2는 A*=2라는 연산을 하려.. 2024. 2. 4.
[프로그래밍/C++] 스레드(Thread) 사용하기 HTML 삽입 미리보기할 수 없는 소스 프로그램이 실제로 실행되서 돌아가고 있는 상태를 프로세스라고 한다. 여기서 하나의 프로세스는 최소 한개 이상의 스레드를 가지고 있으며 프로세스 내의 자원을 공유할 수 있다. 이 스레드가 프로그램이 실행되는 기본 단위다. 프로그램은 CPU의 코어에서 실행이 되는데, 코어는 한 번에 한 가지 연산만 할 수 있다. 하지만 컴퓨터가 발전하면서 CPU에 들어있는 코어 수가 늘어났고, 여러 개의 코어를 사용해 동시에 스레드를 실행하고 여러 작업을 병렬적으로 처리할 수 있게 됐다. 이제 C++에서 실제로 스레드를 구현해 사용해 보자 HTML 삽입 미리보기할 수 없는 소스 일단 C++에서 스레드를 사용하기 위해서는 #include 라는 헤더가 필요하다. #include #incl.. 2024. 2. 3.
반응형