분리된 스레드와 Main() 종료의 결과
분리된 스레드가 시작되어 표준 제어 이후 실행을 계속하는 시나리오를 고려해보세요. ::스레드 객체가 범위를 벗어납니다. 주제에 대한 표준의 잠재적인 침묵은 우려를 불러일으켰습니다. main() 함수가 종료될 때 분리된 스레드는 어떻게 되나요?
정의되지 않은 동작 또는 정의된 효과?
The 표준에는 이 문제에 대한 명시적인 지침이 부족합니다. 그러나 원래 질문에 대한 응답은 명확한 설명을 제공합니다.
분리된 스레드 및 신호 처리기 결합
두 번째 질문에 대한 응답은 분리된 스레드가 *_at_thread_exit 함수 계열을 통해 결합될 수 있다고 주장합니다. . 이러한 함수를 사용하면 모든 소멸자가 호출되었는지 확인하면서 스레드 실행 완료 신호를 보낼 수 있습니다.
그러나 조건 변수나 세마포어만 사용하는 것만으로는 안정적인 조인에 충분하지 않습니다. 표준은 구현에서 명시적으로 허용하지 않는 한 조건 변수의 사용을 제외하고 신호 처리 중 코드 실행에 대한 제한을 적용합니다.
프로그램 동작에 대한 결과
이를 고려하여 관찰 결과, main() 종료 시 스레드 동작에 대한 표준 제약 조건은 다음에 대한 특정 작업을 지시합니다. 개발자:
위 내용은 `main()` 함수가 종료되면 분리된 스레드에 어떤 일이 발생합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!