全局变量不变

时间:2016-11-14 13:26:41

标签: python python-multithreading

我有一个类似的代码,这个简化了你的时间。基本上我会有多个线程可以启动,而另一个仍在进行中,我希望新进程杀死旧进程,但在下面的代码中 loop()不想死,我不知道为什么。还有更好的方法吗?

请假设另一个程序导入此模块并在第一个线程结束之前再次执行automation.loopwrapperwrapper(0,255)和automation.loopwrapperwrapper(0,255)。

import threading
import time

die=0
value=0

def loop(valuefrom, valueto)
    global value
    global die
    die=0
    while value<>valueto:
        if die==1:
            return value
        if value>valueto:
            value -= 1

        else:
            value += 1
            time.sleep(1)
    return value

def loopwrapper(valuefrom, valueto)
    global die
    die=1
    value=loop(valuefrom, valueto)
    return value

def loopwrapperwrapper(valuefrom,valueto)
    t = threading.Thread(target=loopwrapper, args=(valuefrom,valueto))
    t.start()

如果我错误地将其简化并且代码确实有效,那么这是我正在使用的实际代码。 http://pastebin.com/SCR6pUwi

感谢您的帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

尝试使用以下命令:

而不是死= = 1,使用die ==&#39; 1&#39;或&#34; 1&#34;,或者你可以使用-eq代替== - &gt;这可能有用