Python의 스레드 내부에서 호출될 때 sys.exit()가 종료되지 않는 이유는 무엇입니까?

| | | | | | | | | | | | | | | | | |

이것은 어리석은 질문일 수 있지만 Python에 대한 몇 가지 가정을 테스트 중이며 다음 코드 스니펫이 스레드에서 호출될 때 종료되지 않고 스레드에서 호출될 때 종료되는 이유에 대해 혼란스러워합니다. 메인 스레드.

시스템 가져오기, 스레딩에서 가져온 시간 가져오기 Thread def testexit(): time.sleep(5) sys.exit() print "post thread exit" t = Thread(target = testexit ) t.start() t.join() "기본 종료 전, 스레드 종료 후" 인쇄 sys.exit() "기본 종료 후" 인쇄 

sys.exit( ) 호출이 Python에서 종료되어야 함을 나타냅니다. 이 프로그램의 출력에서 "post thread exit"는 인쇄되지 않지만 메인 스레드는 스레드가 exit를 호출한 후에도 계속 진행된다는 것을 알 수 있습니다.

각 스레드에 대해 인터프리터의 별도 인스턴스가 생성되고 exit() 호출이 해당 개별 인스턴스를 종료하는 것입니까? 그렇다면 스레딩 구현은 공유 리소스에 대한 액세스를 어떻게 관리합니까? 스레드에서 프로그램을 종료하고 싶다면(실제로 원하지는 않지만 이해하기 위해) 어떻게 해야 하나요?