关闭时进程不会结束

时间:2013-01-10 18:53:57

标签: python tkinter

我用Python构建了一个web-scraper应用程序。它由三个主要部分组成:

  1. GUI(基于tkinter构建)
  2. 客户端(控制前端和后端之间的接口)
  3. 后端代码(各种线程进程)。
  4. 我遇到的问题是,当用户点击X退出程序而不是通过界面退出时,似乎root.destroy()永远不会被调用,应用程序会永远运行,即使窗口确实消失了。这最终消耗了大量的系统资源。

    我尝试将所有线程设置为守护进程但没有取得多大成功。退出后该程序是否会继续占用CPU?

1 个答案:

答案 0 :(得分:2)

您不希望将 所有 主题设置为daemon。您希望将客户端线程和后端线程设置为守护程序。这样,当GUI线程死亡时,daemon设置为True的线程也会结束。

来自documentation

  

线程可以标记为“守护程序线程”。这个标志的意义在于,当只剩下守护程序线程时,整个Python程序都会退出。