首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中并行完成两个数字的相加

在python中并行完成两个数字的相加
EN

Stack Overflow用户
提问于 2018-09-16 18:56:13
回答 1查看 438关注 0票数 -1

这是我的代码。

代码语言:javascript
复制
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函数并获得新的数字。我只能输入数字,但不能得到输出。注意:缩进没有问题。

请帮帮我!!谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-16 20:59:11

输入法应该读取输入并将其放入队列中。Add方法将从队列中读取输入并执行操作。下面是基本的实现-

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52353383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档