首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python多进程处理

多进程的概念在操作系统里面很常见了,为的就是实现多任务的执行,也就是说从单例执行任务到任务的多个执行.实现多任务的模式,一般为master-worker的主从架构.master负责分配任务,worker负责执行任务,这一点其实跟很多分布式系统的资源调度如出一辙.

在实际中会遇到这样一种场景,就是数据的来源有很多,然后需要同时处理,这个时候如果一个个的处理数据,那么就是单任务模式,效率可想而知.

这就好比我们小时候做作业,语数外政治地理历史等,如果明天要交作业了,晚上我们一门门的做,这个时候我们就想象着,如果能同时能启动所有的作业,在不同的作业间不停切换该多好.因此,我采用python的多进程去处理数据来达到多任务的状态,大致的构思可以看下面一个概要图:

引入multiprocessing后,通过创建队列,将多任务放入队列里面;

创建相应的任务,一个作为数据的处理,一个作为数据处理后的消费,可以看成是一个生产者-消费者的模型.

核心的实现如下所示:

首先创建了一个队列q,作为多进程的管理与数据的共享;然后,创建了两个子进程p,p1,一个作为生产者,另一个作为数据处理后的消费者.接着再定义好生产者,消费者的处理逻辑.

最后,我们启动这个程序,来看看后台是否跟我们想象的一致是多任务处理.

通过进程可以看到,已经有3个python进程在执行,实现了多进程与进程间的通信.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180210G14LD600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券