首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一旦条件匹配就停止线程

一旦条件匹配就停止线程
EN

Stack Overflow用户
提问于 2016-01-21 12:31:51
回答 3查看 12.8K关注 0票数 4

我想要触发upfunction,当它在文件名中写入3时停止。基本上,我想在满足条件后停止线程,如下所示。

代码语言:javascript
复制
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:“线程”对象没有属性“停止”

请把我当成蟒蛇的新手。如有任何帮助,将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2016-01-21 12:48:30

‘'Thread’对象没有属性'stop‘是python解释器对您的有用回答。

您应该将线程终止条件设置为upfunction

代码语言:javascript
复制
    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")
票数 3
EN

Stack Overflow用户

发布于 2016-01-21 12:49:50

您可以使用线程deamon方法来杀死这个新线程。

代码语言:javascript
复制
thread.start()
thread.deamon()

当主线程结束时,这个自定义线程也会死,.so不需要这样做。

票数 1
EN

Stack Overflow用户

发布于 2016-01-21 13:01:53

以下是一些正确方法的解释:Is there any way to kill a Thread in Python?

正如Lex所说的[0],您可以添加一个条件(在upfunction参数中)来停止目标函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34923928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档