
	                	                 
이 문제를 해결하기 위해서는 메인 스레드가 종료되기 전에 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