python 消息队列_Python使用BaseManager分布式进程及Queue消息队列实现分布式计算

382009e74c7f2e838e24f98c5a893406.png

由于GIL的存在,Python中的多线程其实并不是真正意义上的多线程,在之前的一篇文章Python中的多线程与多进程那些事 中提到I/O密集型可使用多线程并发执行提高效率、而计算密集型需使用多进程并行执行提高效率。

针对计算密集型的任务,我们如何通过多进程提高效率?


multiprocessing & Queue 实现分布式计算

本文将介绍如何通过multiprocessing.BaseManager、Queue模块实现简易的分布式计算框架。

主节点负责任务的派发和任务结果的采集,从节点可以是在同一电脑/服务器的不同进程,或者其他电脑/服务器上,负责任务执行和结果上报。主节点与从节点通过Queue队列实现数据共享(任务下发、结果反馈)。

整体设计主要分为Task、MasterWork、SlaveWork三个模块,接下来分享一下主要设计及源码。

875341f9d974687d07b44692d848a79e.png

Task模块

任务模块,根据任务需求将我们的任务单独封装在Task.py模块中,如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值