假设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."
答案 0 :(得分:3)
korylprince是对的。你只需要一个return语句,或者在你的情况下传递:
def run(self):
if self.FLAG == True:
pass
else:
print str(self.myName) + " is running."
由于代码中没有循环结构,因此线程将在两种情况下终止。基本上一旦函数返回,线程就会退出。如果你想做多个操作,可以在那里添加一些循环。
答案 1 :(得分:2)
我通常可以使用以下模式:
def run(self):
while self.active:
print str(self.myName) + " is running."
当self.active
为False
时,它会自动退出。
警告:使用while True:
时,请务必构建代码以避免占用CPU内核,因为它可以轻松实现此目的。