Python实现多进程运行

(如果你是一个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

关注“AI柠檬博客”微信公众号,及时获取你最需要的干货。


Donate

WeChat DonateAlipay Donate

Comments

《 “Python实现多进程运行” 》 有 2 条评论

  1. N0vaD3v 的头像

    前排围观,来学习一个!

    最近在写一个爬虫,就在想着一个多线程加速的Quick Start来着。

    1. ailemon 的头像

      哈哈,可以,不过,在计算密集型的地方用多线程,IO密集型的地方还是要多进程试试,这样是不是会更好一些呢?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

3 × 4 =