python中任务执行的几种简单模型

在python任务中,我们考虑两个因素,进程数和任务数,通过这两个因素来总结当前任务执行过程中的几种常用解决方案

 单任务t多任务nt
单进程pptpnt
多进程npnptnpnt

在上述模型当中,单任务单进程,对于开发者而言,是最简单的模型,无论是出于什么样的选择,在当前只能是顺序执行,对于效率而言,只能是通过对任务本身进行调整。

单进程多任务,顺序执行其实也是唯一的选择,由于这里我们只考虑进程和任务本身,对于其他的因素未做别的考虑,所以顺序执行就变成了唯一的选择,而且在执行过程中,由于模型简单的原因,导致问题不会太多,但其实在运行的过程中,如果我们去考虑其他更多的因素,就会发现会有许多值得去讨论的问题,如多个任务是顺序执行还是交替执行?以及交替的策略。再仔细考虑一下就会发现所有的变化其实都发生在任务端,变化都是由于任务的变化而引起,所以对于任务的调整至关重要。任务其实有多种形式,在当前的开发模式下,也有几种,一种是长任务,如web服务,一种是任务切片,如处理从kafka过来的消息(任务切片模式)等

多进程单任务,这个模型中的难点就是任务的拆分,一个任务分给多个进程执行,最难的点就在于任务的拆分,如何把一个任务分配给多个进程去执行。如一个大文件内容操作,常规我们操作是先把数据读取到内存中,然后再进行相关操作。读——》操作。如果我们采用多进程去操作,那就是先把数据读取到内存中,然后再对数据进行切片,然后分配到不同的进程去操作。读——》切片——》操作。增加了切片时间,减少了操作时间。当然,在这里其实就可以有许多不同的方案了,比如读数据的时候就可以启动多个进程去读,在这里其实还有一个需要确认的地方,多个进程读出来的数据对象,是一个数据对象还是变为多个数据对象了,这个是比较关键的。这里其实已经是涉及到分布式处理了。

多进程多任务,处理难度更高,但整体方案和多进程单任务其实差不太多,但是需要再添加一层去处理,就像是我们处理数据库一样,刚开始处理单表,后来需要处理一个schema,一个schema下对应有多张表,再后来就需要处理一个库,一个库下有多个schema,类似于这种层级结构。

这里先做简单的模型总结,后续出对应的详细解决方案。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值