python:并发编程(四)

前言

本文将和大家一起探讨python的多进程并发编程,使用内置基本库multiprocessing来实现并发,先通过官方来简单使用这个模块。先打好基础,能够有个基本的用法与认知,后续文章,我们再进行详细使用。

本文为python并发编程的第四篇,上一篇文章地址如下:

python:并发编程(三)_Lion King的博客-CSDN博客

下一篇文章地址如下:

(暂无)
 

一、快速开始

官方文档:multiprocessing --- 基于进程的并行 — Python 3.11.4 文档

1、通过Process Explorer对比进程情况

基于官方代码,我加了“while True:”这个无线循环,以方便观察进程的情况。

这段代码创建了一个无限循环,在每次循环中使用multiprocessing模块的进程池来执行函数f(x)。具体步骤如下:

(1)导入multiprocessing模块的Pool类。

(2)定义了一个函数f(x),用于计算传入参数x的平方。

(3)在if __name__ == '__main__':条件下创建一个进程池p,并指定进程池的大小为5。

(4)使用p.map()方法并行地对给定的迭代对象[1, 2, 3]中的每个元素应用函数f(x),并返回结果。

(5)打印输出结果。

(6)进入无限循环。

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    while True:
        with Pool(5) as p:
            print(p.map(f, [1, 2, 3]))

运行前的进程情况:

运行时的进程情况:

python:并发编程(四)_第1张图片

 通过上述实验,我们知道,这个程序在不断创建5个进程并进行销毁,红色部分是被销毁的5个进程,绿色部分是新生成的5个进程。通过Pycharm运行脚本时,会先生成python.exe子进程,这个子进程又会生成python.exe子进程和conhost.exe子进程,而第二个python.exe子进程又会生成5个子进程,来执行任务。

 

你可能感兴趣的:(python,python)