Почему sys.exit() не завершается при вызове внутри потока в Python?

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

Это может быть глупый вопрос, но я проверяю некоторые из своих предположений о Python и не понимаю, почему следующий фрагмент кода не завершается при вызове в потоке, но завершается при вызове в потоке. основной поток.

import sys, время из потока import Thread def testexit(): time.sleep(5) sys.exit() print "выход после потока" t = Thread(target = testexit ) t.start() t.join() print "до основного выхода, после выхода из потока" sys.exit() print "после основного выхода" 

Документация для sys.exit( ) указывают, что вызов должен выйти из Python. Из вывода этой программы я вижу, что «выход из постпотока» никогда не печатается, но основной поток просто продолжает работать даже после того, как поток вызывает выход.

Создается ли отдельный экземпляр интерпретатора для каждого потока, а вызов exit() просто завершает работу этого отдельного экземпляра? Если да, то как реализация многопоточности управляет доступом к общим ресурсам? Что, если бы я действительно хотел выйти из программы из потока (не то чтобы я действительно хотел этого, но просто так понимаю)?