初めに
業務でmultiprocessingのQueueを使用して並列処理を実装することがあったのでノウハウ記録用に記入にします。誰かのお役に立てれば幸いです。
使用例
マルチプロセス処理の例を紹介します。
import multiprocessing as mp
def work(q):
q.put(object()) #アイテムをキューに追加 最大処理数のリソースが消費されるまでブロック
# do some work
q.get() #アイテムを回収 リソースを解放 アイテムが取り出せるまでブロック
if __name__ == '__main__':
Max = 2 #並列最大処理数
queue = mp.Queue(Max)
process = [mp.Process(target=work, args=(queue,)),
mp.Process(target=work, args=(queue,)), ]
[p.start() for p in process]
[p.join() for p in process]
参考資料