Pythonのスレッド内で呼び出されたときにsys.exit()が終了しないのはなぜですか?

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

これはばかげた質問かもしれませんが、Pythonに関する私の仮定のいくつかをテストしていて、次のコードスニペットがスレッドで呼び出されたときに終了しないのに、メインスレッド。

  import sys、スレッドからの時間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"  

sys.exit(のドキュメント)呼び出しをPythonから終了する必要があることを示します。このプログラムの出力から、「post thread exit」は出力されないことがわかりますが、メインスレッドは、スレッドがexitを呼び出した後も続行します。

スレッドごとにインタープリターの個別のインスタンスが作成されており、exit()の呼び出しはその個別のインスタンスを終了しているだけですか?もしそうなら、スレッドの実装はどのように共有リソースへのアクセスを管理しますか?プログラムをスレッドから終了したい場合はどうなりますか(実際に終了したいわけではありませんが、理解しているだけです)。