[c++] C++에서의 스레드 분리

C++에서 스레드를 사용하여 병렬 처리를 수행하는 방법을 알아봅시다.

1. std::thread를 사용하여 스레드 생성

C++11부터 제공되는 std::thread 라이브러리를 사용하여 새로운 스레드를 만들 수 있습니다.

#include <iostream>
#include <thread>

void threadFunction() {
    // 스레드에서 수행될 작업
    std::cout << "Thread is running" << std::endl;
}

int main() {
    // 새로운 스레드 생성
    std::thread myThread(threadFunction);

    // 메인 스레드와 새로운 스레드의 작업을 병렬로 수행
    std::cout << "Main thread is running" << std::endl;

    // 새로운 스레드가 종료될 때까지 대기
    myThread.join();

    return 0;
}

2. 스레드 분리

std::thread를 사용하여 생성된 스레드를 분리할 수 있습니다. 분리된 스레드는 메인 스레드와 별도로 동작하며, 메인 스레드가 종료되어도 독립적으로 실행됩니다.

#include <iostream>
#include <thread>

void threadFunction() {
    // 스레드에서 수행될 작업
    std::cout << "Thread is running" << std::endl;
}

int main() {
    // 새로운 스레드 생성
    std::thread myThread(threadFunction);

    // 스레드를 분리하여 독립적으로 실행
    myThread.detach();

    // 메인 스레드가 종료되어도 분리된 스레드는 계속 실행됨
    std::this_thread::sleep_for(std::chrono::seconds(1));
    
    return 0;
}

결론

C++에서는 std::thread를 사용하여 스레드를 생성하고, 작업을 병렬로 수행할 수 있습니다. 또한 detach 함수를 사용하여 생성된 스레드를 분리할 수 있으므로, 병렬 처리를 보다 유연하게 조절할 수 있습니다.

참고 자료: