python程序代码大全-Python编程代码示例 - 全文

本文介绍了进程的概念,强调了将代码分解以实现并行执行的重要性,特别是通过Python的`multiprocessing`模块。讨论了如何利用进程池进行并行计算,展示了使用队列在多个进程中同步数据的例子,还提到了`os`和`subprocess`模块用于外部程序调用。并行计算可以显著提高程序效率,但也需要考虑开销、任务依赖和资源管理等因素。
摘要由CSDN通过智能技术生成

当你在机器上启动某个程序时,它只是在自己的“bubble”里面运行,这个气泡的作用就是用来将同一时刻运行的所有程序进行分离。这个“bubble”也可以称之为进程,包含了管理该程序调用所需要的一切。

例如,这个所谓的进程环境包括该进程使用的内存页,处理该进程打开的文件,用户和组的访问权限,以及它的整个命令行调用,包括给定的参数。

此信息保存在UNIX/Linux系统的流程文件系统中,该系统是一个虚拟文件系统,可通过/proc目录进行访问。条目都已经根据进程ID排过序了,该ID是每个进程的唯一标识符。示例1显示了具有进程ID#177的任意选择的进程。

示例1:可用于进程的信息

205R44951_0.png

构建程序代码以及数据

程序越复杂,就越有助于将其分成较小的模块。不仅仅源代码是这样,在机器上执行的代码也同样适用于这条规则。该规则的典型范例就是使用子进程并行执行。这背后的想法就是:

单个进程包含了可以单独运行的代码段

某些代码段可以同时运行,因此原则上允许并行

使用现代处理器和操作系统的特性,例如可以使用处理器的所有核心,这样就可以减少程序的总执行时间

减少程序/代码的复杂性,并将工作外包专门的代理

使用子进程需要重新考虑程序的执行方式,从线性到并行。它类似于将公司的工作视角从普通员工转变为经理——你必须关注谁在做什么,某个步骤需要多长时间,以及中间结果之间的依赖关系。

这有利于将代码分割成更小的部分,这些更小的部分可以由专门用于此任务的代理执行。如果还没有想清楚,试想一下数据集的构造原理,它也是同样的道理,这样就可以由单个代理进行有效的处理。但是这也引出了一些问题:

为什么要将代码并行化?落实到具体案例中或者在努力的过程中,思考这个问题有意义吗?

程序是否打算只运行一次,还是会定期运行在类似的数据集上?

能把算法分成几个单独的执行步骤吗?

数据是否允许并行化?如果不允许,那么数据组织将以何种方式进行调整?

计算的中间结果是否相互依赖?

需要对硬件进行调整吗?

在硬件或算法中是否存在瓶颈,如何避免或者最小化这些因素的影响?

并行化的其他副作用有哪些?

可能的用例就是主进程,以及后台运行的等待被激活的守护进程(主/从)。此外,这可能是启动按需运行的工作进程的一个主要过程。在实践中,主要的过程是一个馈线过程,它控制两个或多个被馈送数据部分的代理,并在给定的部分进行计算。

请记住,由于操作系统所需要的子进程的开销,并行操作

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值