2017-04-19 170 views
1

我需要添加两个(A & B)的大随机大小(10^7,10^12)的矢量与python或多处理中的两个线程的帮助。然后需要将它存储在C中。我还必须记录我的代码。最后需要从最终向量中找出最小和平均数。我尝试了很多东西,目前正在使用Anaconda Jupyter笔记本。它接受代码,但不给我任何输出。线程/多处理/队列?

这是我的代码

"import time 
import multiprocessing 
import numpy as np 
import threading 
add_result = [] 
a = np.random.rand(10000000) 
b = np.random.rand(10000000) 
def calc_add(numbers): 
global add_results 
for n in numbers: 
    print('add' + str(a+b)) 
    add_result.append(a+b) 
    print('within a process result' +str(add_result)) 
    time.Time = start_time 
if __name__=="__main__": 
arr = a+b 
p1 = multiprocessing.Process(target = calc_add, args = (arr)) 
p2 = multiprocessing.Process(target = calc_add, args = (arr)) 
p1.start() 
p2.start() 
p1.join() 
p2.join() 

print("result" +str(add_result)) 
print("done!") 
+2

请把你的代码放到你的问题中。 – martineau

回答

0

你不能做这样的操作与多,因为(在Python)过程是分开的,不共享彼此之间什么。这意味着你的global变量在第二个进程p1中只是全局变量,这就是为什么你的add_result变量仍然等于“[]”。

请在您的问题中添加您的代码,以便我们帮助您重新编写它。

你还应该看看python的GIL以更好地理解为什么进程(和线程)不能帮助你完成任务。