2017-06-13 9 views
0

私はPythonで配列を満たす速度を上げたいと思います。私はそのために並列処理をどのように使うことができるのだろうかと思います。私のコードは次のようになります:Pythonでリストをいっぱいにする並列処理

def get_value(val): 
    ##THE RESPONSE OF THE REQUEST TAKES SOME TIME## 
    return subprocess.check_output('curl -d "data='+i+'" http://my/url,com',shell=True) 

N = 1000000 
output = [0]*N 

for i in range(N): 
    output[i] = get_value(i) 

この場合、出力配列をどのようにして並列化できますか?

答えて

1

これを試してみてください!

import multiprocessing 
import subprocess 
def get_value(val): 
    ##THE RESPONSE OF THE REQUEST TAKES SOME TIME## 
    return subprocess.check_output('curl -d "data='+ str(val)+'" http://my/url,com',shell=True) 

N = 1000000 
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count()) 
outputs = pool.map(get_value, range(N)) 
pool.close() 
関連する問題