我试图在 Windows 下创建一个守护线程,但我不知道我做错了什么。下面的代码充当普通线程:我没有看到“结束运行”写入控制台。有什么建议吗?
def start(self):
self.isrunning = True
self.thread = threading.Thread(name="GPS Data", target=self.thread_run)
self.thread.setDaemon(True)
self.thread.run()
print "End Run"
def thread_run(self):
while self.isrunning:
data = self.readline()
print(data)
最佳答案
以下内容:
self.thread.run()
应阅读:
self.thread.start()
否则,将在当前线程的上下文中调用 thread_run()
,而不是在新线程的上下文中调用。
thread_run()
函数永远不会返回(因为 self.isrunning
永远不会改变),并且代码永远不会到达 print
语句。
关于python - 创建守护线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9096685/