오보에블로그
[C++] std::thread 사용법 본문
728x90
스레드 란?
- 프로세스를 실행시키는 단위, 하나의 프로세스는 여러개의 스레드(멀티 스레드)로 이루어 질 수 있으며,
- 동일 프로세스 내에서는 메모리 자원을 공유할 수 있다.
C++ thread
- 참고 : C++레퍼런스
- C++11 에서 부터
thread
헤더를 통해 스레드 관련 라이브러리를 사용할 수 있다. std::thread
는 싱글 스레드를 실행하는 클래스이다. 해당 클래스를 사용하면, 별도의 싱글 스레드에서 지정한 함수가 호출된다.
/*
output :
28580
thread execute!
*/
#include <thread>
#include <iostream>
using namespace std;
void func()
{
cout << "thread execute!" << endl;
}
int main() {
thread t1(func); // 스레드 생성
cout << t1.get_id() << endl; // 스레드 ID 출력
t1.join(); // 해당 스레드 실행이 끝날 때까지 대기
}
get_id()
: 해당 스레드의 아이디 반환join()
: 해당 스레드 실행이 끝날 때까지 대기- 인자가 있는 함수를 실행시킬 때는 아래와 같이 스레드를 생성할 때 함수 명 옆에 인자로 사용할 변수를 적는다.
/*
output :
My Name is obo
*/
void func(string name)
{
cout << "My Name is " << name << endl;
}
int main() {
thread t1(func, "obo" );
t1.join();
}
728x90
'C++ & C# > C++' 카테고리의 다른 글
[C++] 멀티 스레드 와 mutex (0) | 2022.02.27 |
---|---|
[C++] std::this_thread 사용법 (0) | 2022.02.24 |
[C++Docs] 타입 최대 최소 define 상수 라이브러리 (0) | 2022.01.10 |
[시스템프로그래밍] 리눅스 쉘 (명령어 해석기)만들기 (0) | 2019.07.05 |
5362 전투드로이드가격 (0) | 2018.03.17 |