[c++] C++에서의 스레드 생성
C++는 다중 스레드를 지원하는 강력한 언어입니다. C++11 이후 버전에서는 표준 라이브러리에 스레드를 다루기 위한 기능이 추가되었습니다. 스레드를 생성하고 다루는 방법을 알아보겠습니다.
std::thread
클래스 사용하기
C++11 표준 라이브러리에는 스레드를 다루기 위한 std::thread
클래스가 포함되어 있습니다. 이 클래스를 사용하여 스레드를 생성하고 실행할 수 있습니다.
다음은 std::thread
를 사용하여 간단한 예제 스레드를 만드는 코드입니다.
#include <iostream>
#include <thread>
void threadFunction() {
// 스레드에서 실행되는 코드
std::cout << "This is a thread function" << std::endl;
}
int main() {
// 스레드 생성
std::thread t(threadFunction);
// 메인 쓰레드와 새로 생성된 스레드를 병행해서 실행
// ...
// 스레드가 끝나길 기다림
t.join();
return 0;
}
std::thread
생성자를 통해 스레드 함수(threadFunction
)를 전달하여 새로운 스레드를 생성합니다. 이후 join
함수를 사용하여 메인 스레드가 새로운 스레드가 종료될 때까지 대기하도록 할 수 있습니다.
스레드 생성 시 인수 전달하기
스레드를 생성할 때 인수를 전달할 수도 있습니다.
#include <iostream>
#include <thread>
void threadFunction(int n) {
std::cout << "This is thread function with argument: " << n << std::endl;
}
int main() {
int arg = 5;
std::thread t(threadFunction, arg);
t.join();
return 0;
}
위의 예시에서 threadFunction
은 정수형 인수를 받아들이도록 정의되어 있습니다. std::thread
의 생성자에서 해당 인수를 전달하여 스레드를 생성하고 실행해볼 수 있습니다.
결론
이제 C++에서의 스레드 생성에 대해 간단히 알아보았습니다. std::thread
클래스를 사용하여 스레드를 생성하고 제어할 수 있으며, 필요한 경우 인수도 전달할 수 있습니다. C++를 이용하여 다중 스레드를 다루는 데에는 이처럼 표준 라이브러리를 이용하는 방법 외에도 다양한 방법이 있으니 필요에 따라 적절히 선택하여 사용하시면 됩니다.