线程处于休眠状态时退出进程

时间:2009-10-21 18:38:20

标签: python multithreading

在python脚本中,我启动了一堆线程,每个线程使用time.sleep(interval)以一定间隔拉取一些资源。我有另一个线程正在运行,它使用cmd模块来监视用户输入。当用户输入“q”时,我会调用

sys.exit(0)

但是,当脚本运行并输入'q'时,线程用户输入监视线程将退出,但是休眠线程仍处于活动状态。 (意思是程序没有退出)

我想知道我是否正确地做到了这一点?

1 个答案:

答案 0 :(得分:4)

sys.exit只会停止它执行的线程。如果程序中有其他非守护程序线程,它们将继续执行。 Python库文档的Section 17.2.1包含:

  

一个线程可以被标记为“守护进程”   线”。这面旗帜的意义   是整个Python程序   仅在守护程序线程时退出   剩下。初始值是继承的   来自创建线程。国旗可以   通过守护进程属性设置。

另见Why does sys.exit() not exit when called inside a thread in Python?