
`Threaded::isTerminated` 함수는 스레드가 종료되었는지 확인하는 함수입니다. 하지만 이 함수를 사용할 때, 스레드가 종료된 후에도 `true`를 반환하는 경우가 발생할 수 있습니다. 이러한 현상을 해결하기 위해 `std::thread` 객체의 `join()` 함수를 사용하는 것이 좋습니다.
`join()` 함수는 스레드가 종료될 때까지 현재 스레드가 대기하는 함수입니다. `join()` 함수를 사용하면 스레드가 종료된 후에만 `true`를 반환합니다.
`isTerminated` 함수를 사용할 때, 스레드가 종료되기 전에 `isTerminated` 함수를 호출하면 `false`를 반환합니다. 스레드가 종료된 후에만 `true`를 반환합니다.
#hostingforum.kr
cpp
#include
#include
void threadFunc() {
std::cout << "스레드가 종료되었습니다." << std::endl;
}
int main() {
std::thread thread(threadFunc);
// 스레드가 종료되기 전에 isTerminated 함수를 호출하면 false를 반환합니다.
std::cout << "스레드가 종료되었는지 확인: " << thread.joinable() << std::endl; // true
std::cout << "스레드가 종료되었는지 확인: " << thread.isTerminated() << std::endl; // false
// 스레드가 종료된 후에만 true를 반환합니다.
thread.join();
std::cout << "스레드가 종료되었는지 확인: " << thread.isTerminated() << std::endl; // true
return 0;
}
위 예제에서 `thread.joinable()` 함수는 스레드가 종료되지 않았는지 확인하는 함수입니다. `thread.joinable()` 함수를 사용하면 스레드가 종료되지 않았을 때 `true`를 반환합니다. 스레드가 종료된 후에만 `false`를 반환합니다.
2025-03-09 09:01