2

假设在 python Thread 的 run() 方法中,我检查一个标志。如果该标志是 True ,我假设我的线程应该退出已经完成它的工作并且应该退出。

那时我应该如何退出线程?试Thread.exit()

class  workingThread(Thread):

    def __init__(self, flag):
        Thread.__init__(self)
        self.myName = Thread.getName(self)
        self.FLAG= flag
        self.start()    # start the thread

    def run(self) : # Where I check the flag and run the actual code

        # STOP
        if (self.FLAG == True):

                # none of following works all throw exceptions    
                self.exit()
                self._Thread__stop()
                self._Thread_delete()
                self.quit()

        # RUN
        elif (self.FLAG == False) :
               print str(self.myName)+ " is running."
4

2 回答 2

3

科里尔王子是正确的。您只需要一个 return 语句,或者在您的情况下通过:

def run(self):
    if self.FLAG == True:
        pass
    else:
        print str(self.myName) + " is running."

由于代码中没有循环结构,因此线程将在两种情况下终止。基本上,一旦函数返回,线程就会退出。如果您想做多个操作,请在其中添加某种循环。

于 2012-10-01T18:47:01.330 回答
2

我通常可以使用以下模式:

def run(self):
    while self.active:
        print str(self.myName) + " is running."

self.active时会自动退出False

注意:使用 时while True:,请务必构建代码以避免占用 CPU 内核,因为它很容易做到这一点。

于 2012-10-01T18:54:52.480 回答