使用python 3处理某些线程,同时运行两个东西。 这是我正在测试的脚本。
from threading import Thread
import time as t
x=1
z=1
var=0
def firstFunction():
global var
while x == 1:
var += 1
t.sleep(1)
def secondFunction():
while z == 1:
print(var)
t.sleep(1)
add=Thread(target=firstFunction)
see=Thread(target=secondFunction)
add.start()
see.start()
由于某种原因,当我运行它时,你会把它计算出去,对吧? 但它只是说
1
并没有结束或说错误,但如果我尝试一个脚本,有脚本询问你是否想看到var它工作正常。任何方式我可以让这个没有问的工作吗?以下是询问的代码。
from threading import Thread
import time as t
x=1
z=1
var=0
def firstFunction():
global var
while x == 1:
var += 1
t.sleep(1)
def secondFunction():
while z == 1:
see1=input("See var? : ")
if see1 == "y":
print(var)
elif seel == "n":
print("ok")
else:
print("not option")
add=Thread(target=firstFunction)
see=Thread(target=secondFunction)
add.start()
see.start()
答案 0 :(得分:1)
当您运行这样的代码时,主线程将到达结尾并在启动两个子线程后直接终止。
你必须等到线程完成。 .join()
会这样做,因此您只需将这些行添加到您的程序的最后部分
add.join()
see.join()
并且主线程将等待两个线程完成。
请注意,不幸的线程和联接星座可能导致死锁。