这是我的代码。
import time
import threading
import multiprocessing
num1 = 0
num2 = 0
def take_numbers(num1,num2):
print('Enter the numbers:')
for n in range(0,5):
time.sleep(0.2)
num1 = input('Enter first number')
num2 = input('Enter second number')
def add_num(num1,num2):
for n in range(0,5):
time.sleep(0.2)
return num1+num2
t1 = threading.Thread(target=take_numbers, args=(num1,num2))
t2 = threading.Thread(target=add_num, args=(num1,num2))
t1.start()
t2.start()
t1.join()
t2.join()
我需要一个输出,当调用time.sleep(0.2)
时它应该停止的地方,并与现有的数字执行加法,然后再次转到take_numbers函数并获得新的数字。我只能输入数字,但不能得到输出。注意:缩进没有问题。
请帮帮我!!谢谢
发布于 2018-09-16 20:59:11
输入法应该读取输入并将其放入队列中。Add方法将从队列中读取输入并执行操作。下面是基本的实现-
import threading
from multiprocessing import Queue
results = []
def take_numbers(q):
print('Enter the numbers:')
for i in range(0,5):
num1 = int(input('Enter first number: '))
num2 = int(input('Enter second number: '))
q.put(num1)
q.put(num2)
def add_num(q):
for i in range(0,5):
num1 = q.get()
num2 = q.get()
results.append(num1+num2)
q = Queue()
t2 = threading.Thread(target=add_num, args=(q, ))
t1 = threading.Thread(target=take_numbers, args=(q, ))
t2.start()
t1.start()
t2.join()
t1.join()
q.close()
for result in results:
print ("result =", result)
https://stackoverflow.com/questions/52353383
复制相似问题