python - 创建守护线程

标签 python windows multithreading

我试图在 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/

相关文章:

python - docker中的端口映射不适用于python服务器

python - 如何从字符串中提取子字符串,避免包含分隔符?

Windows 命令提示符 : How to pass multi-line string parameters

VSS(卷影复制)路径的 java.nio.file.Path 错误

java - 除了性能改进之外,什么时候应该更喜欢 ThreadLocal 而不是同步?

python - 我如何使用散列和 pickle 来保存/加载对象

python - 使用 numpy.trapz 进行定积分?

windows - vb.net 尝试安装 Windows 服务时出错

c - 测量上下文切换时间 C (Windows)

java - Java中的线程管理