最近在多线程内调用sys.exit()时发现不会退出
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._exit()来强制直接退出
原因是sys.exit()是引发一个SystemExit异常,因为是在子线程引出异常的,所以它是子线程退出,主线程还是正常运行