Por que sys.exit () não sai quando chamado dentro de um thread em Pytho
Isso pode ser uma pergunta estúpida, mas estou testando algumas das minhas suposições sobre Python e estou confuso sobre o porquê do seguinte trecho de código não sair quando chamado no thread, mas sair quando chamado no thread 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"
Os documentos para sys.exit () afirmam que a chamada deve sair do Python. Vejo pela saída deste programa que "pós-saída do thread" nunca é impresso, mas o thread principal continua continuando mesmo depois que o thread chama exit.
Existe uma instância separada do intérprete sendo criada para cada thread e a chamada para exit () está saindo da instância separada? Em caso afirmativo, como a implementação de encadeamento gerencia o acesso a recursos compartilhados? E se eu quisesse sair do programa a partir do thread (não que eu realmente queira, mas apenas para que eu entenda)?