¿Por qué sys.exit() no sale cuando se llama dentro de un hilo en Python?

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

Esta podría ser una pregunta estúpida, pero estoy probando algunas de mis suposiciones sobre Python y no sé por qué el siguiente fragmento de código no se cerraría cuando se llamara en el subproceso, pero saldría cuando se llamara en el hilo. subproceso principal.

import sys, time from threading import Thread def testexit(): time.sleep(5) sys.exit() print "post thread exit" t = Thread(target = testexit ) t.start() t.join() print "antes de la salida principal, después de la salida del hilo" sys.exit() print "post salida principal" 

Los documentos para sys.exit( ) indican que la llamada debe salir de Python. Puedo ver en el resultado de este programa que la "salida posterior al subproceso" nunca se imprime, pero el subproceso principal continúa incluso después de que el subproceso llama a la salida.

¿Se está creando una instancia separada del intérprete para cada subproceso y la llamada a exit() solo está saliendo de esa instancia separada? Si es así, ¿cómo gestiona la implementación de subprocesos el acceso a los recursos compartidos? ¿Qué sucede si quisiera salir del programa del hilo (no es que realmente quiera hacerlo, pero solo para que lo entienda)?