Esta podría ser una pregunta estúpida, pero estoy probando algunas de mis suposiciones sobre Python y estoy confundido sobre por qué el siguiente fragmento de código no se cerraría cuando se llamaba en el hilo, pero saldría cuando se llamaba en el hilo 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 "pre main exit, post thread exit"
sys.exit()
print "post main exit"
Los documentos de sys.exit () establecen que la llamada debe salir de Python. Puedo ver en la salida de este programa que "post salida del hilo" nunca se imprime, pero el hilo principal sigue funcionando incluso después de que el hilo llama a salir.
¿Se está creando una instancia separada del intérprete para cada hilo 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é pasa si quisiera salir del programa del hilo (no es que realmente quiera, pero para entenderlo)?