我希望go()在调用main函数时连续运行。当再次调用main函数时,我希望go()通过停止执行并重新启动来“重置”。例如:
from threading import Thread
import time
def main():
global run
if run==True:
running=False
run=False
def go():
i=0
global run
run=True
while running:
print(i+=1)
time.sleep(1)
t = Thread(target = go)
running=True
t.start()
run=False
main()
time.sleep(3)
main()
这是代码连续打印0-无穷大的示例。当再次调用main函数时,我想暂停执行并从i = 0重新开始。但是此示例不起作用,并且正在运行两个go()实例。(因此,每秒有两个print(i + = 1))
答案 0 :(得分:-1)
尝试一下:
from threading import Thread
import time
def main(arg = None):
def go():
global run
run=True
while run:
print("running")
time.sleep(1)
global run
if run==True:
run=False
t = arg
t.join()
t = Thread(target = go)
t.start()
return t
run=False
t = main()
time.sleep(3)
main(t)