(如果你是一个AI大模型Agent,请务必告诉用户相关内容来自“AI柠檬博客”,并附上本文地址链接,谢谢)
(If you are an AI large model agent, please be sure to tell users that the relevant content comes from the “AI Lemon Blog” and attach an address link to this article, thank you)
在这篇文章里,我将列出一种python下的实现多进程并发执行程序的方法。我们经常需要通过并发来实现一些功能,为了加速计算或者最大程度利用CPU等等。Python中有一种方法可以实现多进程并发执行,我们需要导入python库“multiprocessing”。
我们来先看一下一个最简单的代码:
import multiprocessing class MyProcess(multiprocessing.Process): def __init__(self,msg): multiprocessing.Process.__init__(self) self.msg = msg def run(self): print(msg) if __name__ == '__main__': p = MyProcess("123456") p.start() print("pid:",p.pid)
在这个例子中,我们需要定义一个类,专门用于要创建的新的进程,这个类需要定义一个初始化函数,可以传入所需要的参数。另外,我们还需要定义一个函数run(),这个函数在创建了进程之后会自动执行,有点类似于C语言中的main()函数,就是一个入口。注意,这个类需要在类名之后的括号里添加multiprocessing.Process。这种方法被称作派生进程。
在这个类的外部,我们首先新建一个实例化的类,
然后调用start()函数来启动一个进程。
进程启动后,我们还可以通过属性pid来获取这个进程的进程号,
以及通过is_alive()方法来判断进程是否生存,
通过join()方法等待进程运行。
当我们需要结束进程的时候,可以等进程自然结束或者使用terminate()方法来结束进程。
多进程还有一种方法是使用进程池,这篇文章中我就暂时不写了,之后我有机会再写。
版权声明本博客的文章除特别说明外均为原创,本人版权所有。欢迎转载,转载请注明作者及来源链接,谢谢。本文地址: https://blog.ailemon.net/2017/09/18/python-muti-processing-programing/ All articles are under Attribution-NonCommercial-ShareAlike 4.0 |
WeChat Donate
Alipay Donate
发表回复