EnT*_*Cas 1 python multithreading
在 python 脚本中,我启动了一堆线程,每个线程使用 time.sleep(interval) 按一定时间间隔提取一些资源。我有另一个线程正在运行,它使用 cmd 模块来监视用户输入。当用户输入“q”时,我调用
sys.exit(0)
Run Code Online (Sandbox Code Playgroud)
但是,当脚本运行并且我输入“q”时,线程用户输入监视线程将退出,但休眠线程仍然存在。(意味着程序不会退出)
我想知道我这样做是否正确?
小智 5
sys.exit 只会停止它执行的线程。如果您的程序中有其他非守护线程,它们将继续执行。Python 库文档的第 17.2.1 节包含:
\n\n\n\n\n线程可以标记为 \xe2\x80\x9cdaemon\n 线程\xe2\x80\x9d。该标志的意义在于,当只剩下守护线程时,整个 Python 程序就会退出。初始值是从创建线程继承的。可以通过守护进程属性设置该标志。
\n
另请参见为什么在 Python 线程内调用 sys.exit() 时不退出?。
\n| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |