import time import math from multiprocessing import Process, Queue, cpu_count import queue as pyqueue def worker(q): while True: try: # なにか処理 _ = q.get(timeout=15) except pyqueue.Empty: break def main(q): for i in range(1000): q.put(i) if __name__ == "__main__": q = Queue(maxsize=1000) p = Process(target=main, args=(q,)) p.start() sub_ps = [Process(target=worker, args=(q,)) for _ in range(2)] _ = [p2.start() for p2 in sub_ps] p.join() _ = [p2.join() for p2 in sub_ps] p.close() _ = [p2.close() for p2 in sub_ps] q.close()
multiprocessingでQueueのputとgetを別プロセスで回しながらやるやつ
スポンサードリンク