小编Wil*_*ert的帖子

Python线程,线程没有被通知停止

我想在主程序停止时停止Python线程。它用于连接到服务器的类。连接由后台线程维护,前台线程响应回调。以下是一个最小的示例。

#!/usr/bin/python
import time, threading
class test():
    running = False
    def __init__(self):
        print "init"
        self.running = True
        self.thread = threading.Thread(target = self.startThread)
        self.thread.start()

    def __del__(self):
        running = False
        print "del"

    def startThread(self):
        print "thread start"
        while self.running:
            time.sleep(1)
            print "thread running"

a = test()
Run Code Online (Sandbox Code Playgroud)

当程序结束时,我天真地期望调用 __del__() 以便通知后台线程停止,但直到后台线程停止后才调用 i。显式调用某些函数不是一个选项,因为该类已被其他人使用,我不想强​​迫他们使用一些额外的代码行。

python python-multithreading

5
推荐指数
1
解决办法
6388
查看次数

标签 统计

python ×1

python-multithreading ×1