- 创建进程池
- 指定进程池数量表示进程池中最多有指定的数列
pool = multiprocessing.Pool(3)
- 使用同步的方式去执行任务,进程池中的进程需要等待其它进程执行完成以后才能执行指定的任务
pool.apply(copy_work)
- 异步执行,进程池中的进程一起执行,不会等待其它进程的执行
pool.apply_async(copy_work)
提示: 主进程不会等待进程池把任务执行完成以后程序再退出
提示: 进程池不再接收其它需要执行的任务
pool.close()
- 等待进程池把任务执行完成以后程序再退出
pool.join()
进程池中的queue
queue = multiprocessing.Manager().Queue()
# 创建进程池
pool = multiprocessing.Pool(2)
# 让进程池执行写入数据的任务
# pool.apply(write_data, (queue,))
# # 让进程池执行读取数据的任务
# pool.apply(read_data, (queue,))
result = pool.apply_async(write_data, (queue,))
等待异步任务执行完成以后代码再继续执行
- 解决办法2
result.wait()
1.使用延时
# time.sleep(1.1)
pool.apply_async(read_data, (queue,))