2012-05-29 11 views
9

を通じて呼び出される関数の返却しましたは、私はこのようなシナリオを持ってmultiprocessing.Process

if pdf_output : 
      pdf_output = pdf_output + pdf_output 

それぞれの仕事について分かりやすいようにしますか? createpdfによって送信された2回の戻り値を取得して処理するにはどうすればよいですか? 私はマルチプロセッシングと思っています.Queueは手掛かりですが、どうすれば実装できますか?

答えて

15

このような単純なタスクでは、キューは必要ありません。私はプールを使用することをお勧めします。 Pool.mapメソッドは、一連の値に並列に関数を適用できます。

import multiprocessing 
def createpdf(data): 
    return ("This is my pdf data: %s\n" % data, 0) 


data = [ "My data", "includes", "strings and", "numbers like", 42, "and", 3.14] 
number_of_processes = 5 
results = multiprocessing.Pool(number_of_processes).map(createpdf, data) 
outputs = [result[0] for result in results] 
pdfoutput = "".join(outputs) 
関連する問題