首页 > 编程知识 正文

什么情况下用多进程(python求1到n的和)

时间:2023-05-06 15:59:55 阅读:80263 作者:1045

从这里开始,我将打开第一个专栏PythonMore,与大家分享和交流在实际学习工作中遇到的python的问题、技术、方法。 我想用最简单的方法,让从容的悟空也明白我写了什么。 哈哈,莱特' s go!

故事背景:

说实话,学生时代,我不知道多线程,多线程,甚至进程,线程是什么。 (我第一次意识到这件事可能对我有用,是在我找工作的时候,在面试中被问到“能谈谈进程和线程的区别吗?”、“不能。”

在实际场景中,我遇到了很多这样的问题。 例如,我有10000张图,每个图都要做一些处理。 即使进行眯着眼睛的星月张处理,总共也需要:张时间x 10000。 这让性急的我难以接受啊。

前几天,我在流水线上看到了关于这个话题的代码基础的系列视频,说得很好。 我建议有兴趣的人也看看。 好了,我的第一个故事是以多进程为主题的。 我希望听了这个故事对你有帮助。

对于前面提到的处理10000张图像的问题,如果我找10个人来,每个人都处理1/10的图像,我的总时间就会缩短到原来的1/10。 这个简单的解决方案听起来很有效。 实际上10个人一起处理图像的话,每个人都可以看作是一个过程,10个人是10个过程,可以节省9/10的时间。 这就是我提问中多进程(请注意这里不是线程)的精彩之处。

Python标准库提供了多进程实现。 这里以多处理为例,以伪代码的形式提供解决方案。

导入多处理#首先引入多处理模块

defprocess_img(img_list )定义了处理图像的函数(方法)。 其中,函数的自变量为对处理对象的图像列表执行你的图像处理操作的def main ) : #主进程all_image=处理对象的所有图像列表img_numm万张图forinrange ()在这里,在一个for循环中,让10个人处理图像p=multi processing.process (target=prcess _ img ),然后在args=all _ image [ I * 100360 (I * 10360

这样我得到了10个人的图像处理帮助,做了更多的工作! 这就是我今天的故事。 来这里,我想问几个问题。

1 .为什么要定义10个进程助手而不是线程呢?

2 .为什么我定义了10个过程,而不是5个、100个?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。