【发布时间】:2019-09-16 16:31:40
【问题描述】:
我创建了一个平方函数,它将从 1,2 开始平方...当我输入“开始”时,当我输入“停止”时结束平方。 当我输入“开始”时,我每 2 秒后开始获取数字的平方,但是当我输入“停止”时,线程没有停止。我使用变量“标志”来停止函数。 这是代码。
import threading
import time
flag=False
def square():
i=1;
global flag
while(True):
print(i*i,"\n")
time.sleep(2)
i=i+1
if(flag):
break
def main():
while(True):
x=input("Enter start/stop")
if(x=="start"):
flag=False
p = threading.Thread(target=square)
p.start()
if(x=="stop"):
flag=True
p.join()
main()
【问题讨论】:
-
在main中添加
global flag。 -
谢谢@CristiFati 现在,它的工作原理
-
把
while(True):改成while(flag==False):,然后就可以去掉if(flag): break了。
标签: python multithreading multitasking