我编写了这部分代码,只是为了表示我的问题并了解它是如何工作的:
from threading import Thread
import time
done = 0
def loopA():
while done > 0:
print "okay"
time.sleep(2)
threadA = Thread(target = loopA)
threadA.start()
user = raw_input()
user = user.lower()
if user == "attempt":
print "attempt detected"
done = done + 1
我期望它做什么:控制台应该要求输入,一旦我写attempt
并点击返回,它应该每2秒开始打印OKAY。我错过了什么?
答案 0 :(得分:0)
这会解决您的问题吗?等待循环效率低下,但它说明了这个概念。更好的是在“ENTER”上检测KEYPRESS。
def loopA():
while done == 0:
pass
while done > 0:
print "okay"
time.sleep(2)
答案 1 :(得分:0)
你只有竞争条件:线程启动,检查值为0
并立即退出,然后主程序才有机会增加值。