0

Python で multiprocessing モジュールを使用する方法を理解しようとしています。以下のコードは、4 つのプロセスを生成し、利用可能になったときに結果を出力します。キューから結果を取得する方法には、もっと良い方法があるに違いないと私には思えます。キューに含まれるアイテムの数をカウントするのではなく、使用可能になったときにアイテムを返し、キューが空になると正常に終了するメソッド。ドキュメントによると、Queue.empty() メソッドは信頼できません。キューからの結果を消費する方法のより良い代替手段はありますか?

import multiprocessing as mp
import time


def multby4_wq(x, queue):
    print "Starting!"
    time.sleep(5.0/x)
    a = x*4
    queue.put(a)


if __name__ == '__main__':
    queue1 = mp.Queue()
    for i in range(1, 5):
        p = mp.Process(target=multbyc_wq, args=(i, queue1))
        p.start()
    for i in range(1, 5): # This is what I am referring to as counting again
        print queue1.get()
4

1 に答える 1