我想要触发upfunction,当它在文件名中写入3时停止。基本上,我想在满足条件后停止线程,如下所示。
def getstatus():
fh = open(filename,'r')
return fh.read()
def upfunction(arg):
for i in range(arg):
print ("backup running")
print(getstatus())
target = open(filename, 'w')
target.write(str(i))
sleep(1)
if __name__ == "__main__":
thread = Thread(target = upfunction, args = (10, ))
thread.start()
print(getstatus())
while getstatus() != "3":
print("NOT 3 ")
sleep(0.5)
continue
thread.stop()
print("thread finished...exiting")它显示了
AttributeError:“线程”对象没有属性“停止”
请把我当成蟒蛇的新手。如有任何帮助,将不胜感激。
发布于 2016-01-21 12:48:30
‘'Thread’对象没有属性'stop‘是python解释器对您的有用回答。
您应该将线程终止条件设置为upfunction。
def upfunction(arg):
i = 0
while getstatus() != "3":
print ("backup running")
print(getstatus())
target = open(filename, 'w')
target.write(str(i))
i += 1
sleep(1)
if __name__ == "__main__":
thread = Thread(target = upfunction, args = (10, ))
thread.start()
print(getstatus())
print("thread finished...exiting")发布于 2016-01-21 12:49:50
您可以使用线程deamon方法来杀死这个新线程。
thread.start()
thread.deamon()当主线程结束时,这个自定义线程也会死,.so不需要这样做。
发布于 2016-01-21 13:01:53
以下是一些正确方法的解释:Is there any way to kill a Thread in Python?。
正如Lex所说的[0],您可以添加一个条件(在upfunction参数中)来停止目标函数。
https://stackoverflow.com/questions/34923928
复制相似问题