python守护线程错误 退出子线程_当父线程退出时,Python守护进程线程不退出

The monitoring was done inside a daemon thread. The Python docs say

only:A thread can be flagged as a “daemon thread”. The significance

of this flag is that the entire Python program exits when only

daemon threads are left.

Which sounds pretty good, right? This thread is just occasionally

grabbing some data, and we don’t need to do anything special when the

program shuts down. Yeah, I remember when I used to believe in things

too.

Despite a global interpreter lock that prevents Python from being

truly concurrent anyway, there is a very real possibility that the

daemon threads can still execute after the Python runtime has started

its own tear-down process. One step of this process appears to be to

set the values inside globals() to None, meaning that any module

resolution results in an AttributeError attempting to dereference

NoneType. Other variations on this cause TypeError to be thrown.