# Queue本身是一个消息列队程序 # 在父进程中创建两个子进程,一个往Queue里写数据,一个从Queue里读数据 # import multiprocessing def download_from_web(q): """下载数据""" # 模拟从网上下载的数据 data = [11, 22, 33, 44] # 向队列中写入数据 for temp in data: q.put(temp) print("---下载器下载完毕并存入到队列中---") def analysis_data(q): """数据处理""" waitting_analysis = list() # 从队列中获取数据 while True: data = q.get() waitting_analysis.append(data) if q.empty(): break # 模拟数据处理 print(waitting_analysis) def main(): # 1.创建一个队列 q = multiprocessing.Queue() # 2.创建多个进程,将队列的引用当作实参进行传递到队列里面 p1 = multiprocessing.Process(target=download_from_web, args=(q,)) p2 = multiprocessing.Process(target=analysis_data, args=(q,)) p1.start() p2.start() if __name__ == '__main__': main()
python multiprocessing多进程通过Queue()实现进程间的通信
最新推荐文章于 2024-04-07 13:43:10 发布