728x90
C++11에서 가장 큰 장점 중 하나는 std::thread 일 것이다.
C++11의 Thread 라이브러리를 사용하면 복잡하고 플랫폼마다 다르게 기술해야 하는 기존의 스레드 프로그래밍을 단순하면서도 플랫폼 독립적으로 구현할 수 있다.
std::thread를 사용하기 위해선 #include <thread>만 추가하면 된다. 다른 라이브러리는 추가할 필요가 없다.
기본적인 사용방법은 아래와 같다.
밑에 join() 함수를 사용하지 않으면, Thread보다 main()가 먼저 끝나기 때문에 에러가 발생하게 된다. 주의하도록 하자.
Thread에 매개 변수를 넘기기 위해서는 아래와 같이 하면된다.
Visual Studio 2012에서는 넘길 수 있는 매개변수의 개수가 5개였다. (어떤 사이트에서 4개라고 봤는데... Update가 다른지는 모르겠지만 나의 경우 5개인 것을 확인하였다.)
마지막으로 joinable() 함수로 이 std::thread 변수가 thread객체를 가지고 있는 것을 확인하고 종료할 수도 있다.
더 많은 기능이 있지만, 현재는 이정도만 사용할 것 같아서... ^^;;
728x90
'Basic Programming > C++ 11' 카테고리의 다른 글
c++11 - constexpr (0) | 2018.08.22 |
---|---|
C++11 - final, override 키워드 (0) | 2017.09.18 |
C++11 - "default" and "delete" keyword (0) | 2016.11.29 |
C++11 - std::mutex (lock_guard, try_lock, try_lock_for, recursive_mutex) (0) | 2016.11.25 |
C++11 - nullptr (0) | 2016.02.26 |