Python实现多进程运行

点击量:278

在这篇文章里,我将列出一种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()方法来结束进程。

 

多进程还有一种方法是使用进程池,这篇文章中我就暂时不写了,之后我有机会再写。

 

打赏作者
很喜欢这篇文章,赞赏一下作者,以激励其创作出更多好文!

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

分享到社交网络:

“Python实现多进程运行”的2个回复

  1. 前排围观,来学习一个!

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注