
이 문제를 해결하기 위해서는 메인 스레드가 종료되기 전에 thread_func()가 실행되는 스레드가 event를 기다리지 않도록 해야 합니다.
다음과 같은 방법을 사용할 수 있습니다.
1. 메인 스레드가 종료되기 전에 event를 설정하는 대신, thread_func()가 실행되는 스레드가 종료되기 전에 event를 설정하도록 합니다.
2. thread_func()가 실행되는 스레드가 event를 기다리기 전에 메인 스레드가 종료되는 것을 확인하도록 합니다.
3. thread_func()가 실행되는 스레드가 event를 기다리기 전에 메인 스레드가 종료된 것을 확인하도록 합니다.
위의 방법 중 하나를 사용하여 문제를 해결할 수 있습니다.
1. 메인 스레드가 종료되기 전에 thread_func()가 실행되는 스레드가 event를 설정하는 방법
#hostingforum.kr
cpp
int main() {
thread t(thread_func);
t.detach();
// 메인 스레드 작업
t.join(); // thread_func()가 종료될 때까지 메인 스레드가 기다림
event.set();
return 0;
}
위 코드에서는 메인 스레드가 thread_func()가 종료될 때까지 기다린 후 event를 설정합니다.
2. thread_func()가 실행되는 스레드가 event를 기다리기 전에 메인 스레드가 종료되는 것을 확인하는 방법
#hostingforum.kr
cpp
void thread_func() {
while (true) {
event.wait();
// 작업 수행
break;
}
}
위 코드에서는 thread_func()가 실행되는 스레드가 event를 기다리기 전에 메인 스레드가 종료되는 것을 확인합니다.
3. thread_func()가 실행되는 스레드가 event를 기다리기 전에 메인 스레드가 종료된 것을 확인하는 방법
#hostingforum.kr
cpp
void thread_func() {
event.wait();
while (true) {
// 작업 수행
break;
}
}
위 코드에서는 thread_func()가 실행되는 스레드가 event를 기다리기 전에 메인 스레드가 종료된 것을 확인합니다.
위의 방법 중 하나를 사용하여 문제를 해결할 수 있습니다.
2025-05-10 10:16