Python 进程池Pool中一些坑

1 from multiprocessing import Pool,Queue。其中Queue在Pool中不起作用,具体原因未明。
解决方案:
如果要用Pool创建进程,就需要使用multiprocessing.Manager()中的Queue,
与multiprocessing中的Queue不同

q=Manager().Queue()#Manager中的Queue才能配合Pool
po = Pool()  # 无穷多进程

2 使用进程池,在进程中调用io读写操作。例如:

p=Pool()
q=Manager().Queue()
with open('/home/cctv/data/stage_file/stage_{}.txt'.format(int(time.time())), 'w') as w1:
		p.apply_async(write_json, args=(video_path, 0,0.6,w1,q,i[0],))

这样也不会完成进程,只能把w放到具体的函数里面,不能通过参数调用

你可能感兴趣的:(Python 进程池Pool中一些坑)