###実装したいこと
main処理内で作成した変数を、multiprocessingを使って実行される関数内から参照したい
###ソースコード
from multiprocessing import Pool, cpu_count import time stack = [] cpu = '' def slowf(x): time.sleep(1) return x*cpu if __name__ == '__main__': st = time.time() cpu = cpu_count() * 2 p = Pool(cpu) stack = p.map(slowf, range(1,11)) print stack #print('cpu : %d' % cpu_count()) print ('stack count : %d' % len(stack)) print('time : %.3f s' % (time.time()-st))
###実行結果
slowf内でcpu変数の値を参照できていないため、skackに記録された値が全てnullとなってしまいました
['', '', '', '', '', '', '', '', '', ''] stack count : 10 time : 2.482 s
グローバル変数で宣言された値は参照出来ることは把握しておりますが、今回のようにmainの中で処理を行い変数に格納した値を並列処理される関数から参照したい場合は、どの様にコーディングすればよいでしょうか。。。。。
###補足
実行環境:windows 7 32bit
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/01 11:33