Python简明教程第16节:多进程

进程是计算机实现多任务的一种方式。

我们使用的QQ,WORD都是一个进程,而QQ和WORD能够同时使用也是多任务的体现。

在Python 中实现多进程的方式有以下几种。

fork()

fork()由于其本身的局限性,只能在 linux 平台使用,无法跨平台。这里就不介绍了。

Process

在 multiprocessing 模块中 有Process类也可以帮助我们实现多进程。

《Python简明教程第16节:多进程》 创建一个新的进程
《Python简明教程第16节:多进程》 创建进程的构造函数
《Python简明教程第16节:多进程》 构造函数

在创建进程的时候需要将进程执行的任务函数,以target参数参入,需要的参数以args传入。另外可以传入进程名字,进程号之类的内容,但是都不是必须的,常用的就是目标函数名和目标函数需要的参数。注意目标函数需要的参数要以元组的形式传入。

Process子类

我们创建一个新的类去继承Process类。

《Python简明教程第16节:多进程》 Process子类创建进程

继承Process类的子类需要定义一个run()方法,该方法中定义了进程的操作。实例化对象之后只需要调用start()方法,就会执行run()方法中的关于进程的操作。

进程池

这是最简单的创建进程的方式,也是推荐的方式。

《Python简明教程第16节:多进程》 进程池创建进程

堵塞方式创建进程,这样的方式创建的子进程按顺序依次执行。

《Python简明教程第16节:多进程》 堵塞方式

进程通信

在多进程任务执行的时候,进程之间由于数据需要共享,所以就需要进程之间能够进行有效的通信,所谓通信其实进程之间交换数据的一种方式而已。Python中的multiprocessing模块提供了Queue、Pipes等多种方式来交换数据。我们以Queue为例进行介绍。

以Process方式创建进程:

《Python简明教程第16节:多进程》 进程通信

以Pool方式创建进程:

《Python简明教程第16节:多进程》 进程通信

好了,大概就是这样。

Then,that’s all,thank you。

关注「Python旧巷」,和小编一起学习Python吧

《Python简明教程第16节:多进程》

    原文作者:老友旧巷
    原文地址: https://www.jianshu.com/p/c2a58064070e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞