从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章将为大家详细讲解有关Python中怎么实现进程间通过队列共享数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
队列中的数据是放在内存中的,可以通过分布式缓存redis优化队列。
demo.py(进程通过队列共享数据):
import multiprocessing def download_from_web(q): """下载数据""" # 模拟从网上下载的数据 data = [11, 22, 33, 44] # 向队列中写入数据 for temp in data: q.put(temp) # 队列中写数据,队列满了会阻塞。 put_nowait() 队列满了会抛异常 print("---下载器已经下载完了数据并且存入到队列中----") def analysis_data(q): """数据处理""" waitting_analysis_data = list() # 从队列中获取数据 while True: data = q.get() # 队列中读数据,队列空了会阻塞。 get_nowait() 队列空了会抛异常 waitting_analysis_data.append(data) if q.empty(): # 队列是否为空。 q.full() 队列是否满了。 break # 模拟数据处理 print(waitting_analysis_data) def main(): # 1. 创建一个队列 (先进先出) q = multiprocessing.Queue(10) # 最多放10个数据。 如果不指定长度,默认大(和硬件相关) # 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()
运行结果:
---下载器已经下载完了数据并且存入到队列中----
[11, 22, 33, 44]
关于Python中怎么实现进程间通过队列共享数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图