반응형
thread 란 그냥 간단하게 백그라운드에서 실행될 프로그램 하나를
만든다고 이해하면 쉽게 이해가 될 것이다.
일단 thread를 사용하기 위해선
#include<thread>
이렇게 thread를 include 해주어야 한다.
사용방법은 thread(백그라운드에서 돌릴 함수이름) 이렇게 사용한다.
join 함수는 thread가 종료 될 때까지 아래 코드를 실행 시키지 않고 기다리게 만든다.
thread tr(함수이름); //선언시
tr.join(); //thread 종료 까지 대기
아래는 간단한 예제이다.
#include <iostream>
#include <thread>
#include <Windows.h>
using namespace std;
void untr_for();
void tr_for();
int main()
{
thread tr(tr_for);
untr_for();
tr.join();
return 0;
}
void tr_for()
{
for (int i = 0; i < 10; i++)
{
cout << i << endl;
Sleep(100);
}
return;
}
void untr_for()
{
for (int i = 0; i < 10; i++)
{
cout << i << endl;
Sleep(100);
}
return;
}
위의 코드를 실행하면 일반적인 동기 프로그램이였으면
0~9까지 순차적으로 프린트가 찍힌 후에 다시 0~9까지 프린트가 되지만
tread를 사용해서 00,11,22 이런 식으로 동시에 찍히는 것을 확인 할 수 있다.
반응형
'프로그래밍 > c++' 카테고리의 다른 글
[c++] memcpy 함수로 배열 값 복사하기 (0) | 2020.09.19 |
---|---|
[c++] memset 으로 1차원, 2차원 배열 초기화 하기! (0) | 2020.09.18 |
[c++] 프로그램 대기 함수 Sleep() (0) | 2020.09.16 |
[c++] string 자주 쓰이는 함수 정리 (0) | 2020.09.11 |
[c++] 템플릿(template) 함수 및 클래스 (0) | 2018.12.20 |