IT袋

当前位置:主页 > 经验教程 > 建站编程 >

什么是Python多进程

什么是Python多进程 如何实现?

时间:2023-12-13 13:25:46 来源:IT袋 作者:马勇
导读:什么是Python多进程,IT电脑小知识篇,关于什么是Python多进程的相关经验,一起来了解了解吧。 什么是多进程 多进程用于执行多个进程的并行执行。 它可以帮助实现真正的并行性,因为可以

什么是Python多进程

IT电脑小知识篇,关于什么是Python多进程的相关经验,一起来了解了解吧。

什么是多进程

多进程用于执行多个进程的并行执行。

它可以帮助实现真正的并行性,因为可以同时执行不同的进程,并且每个进程都拥有自己的内存空间。

它使用CPU的独立核心,并且在执行进程间的数据交换时也很有帮助。

与多线程相比,多进程的计算成本更高,因为不使用共享内存空间。

不过,它允许进行独立执行,并克服了全局解释器锁的限制。

什么是Python多进程

上图展示了一个多进程环境,在该环境中,一个主进程创建了两个独立的进程,并为它们分配了不同的工作。

多进程实现

目前对多线程及其实现方式和限制已经有基本的了解。现在,是时候学习多进程的实现以及如何克服这些限制了。

在这里将沿用相同的示例,但不再创建两个独立的线程,而是创建两个独立的进程,并讨论观察结果。

1、导入库:

from multiprocessing import Process
import os

本例将使用multiprocessing模块来创建独立的进程。

2、计算平方的函数:

该函数将保持不变。只是在这里删除了有关线程信息的打印语句。

def calculate_squares(numbers):
    for num in numbers:
        square = num * num
        print(
            f"Square of the number {num} is {square} | PID of the process {os.getpid()}"
        )

3、主函数:

主函数有一些修改。只是创建了一个独立的进程,而不是线程。

if __name__ == "__main__":
    numbers = [1, 2, 3, 4, 5, 6, 7, 8]
    half = len(numbers) // 2
    first_half = numbers[:half]
    second_half = numbers[half:]
    p1 = Process(target=calculate_squares, args=(first_half,))
    p2 = Process(target=calculate_squares, args=(second_half,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()

输出:

Square of the number 1 is 1 | PID of the process 1125
Square of the number 2 is 4 | PID of the process 1125
Square of the number 3 is 9 | PID of the process 1125
Square of the number 4 is 16 | PID of the process 1125
Square of the number 5 is 25 | PID of the process 1126
Square of the number 6 is 36 | PID of the process 1126
Square of the number 7 is 49 | PID of the process 1126
Square of the number 8 is 64 | PID of the process 1126

可以观察到,每个列表都由一个独立的进程执行,它们具有不同的进程ID。

为了检查进程是否已并行执行,需要创建一个单独的环境,下面我们将讨论这一点。

计算是否使用多进程的运行时间

为了检查是否获得了真正的并行性,在这里将计算使用和不使用多进程的算法运行时间。

相关阅读

  • 创建一个网站要多少钱 自己做一个网站需要的费用

    创建一个网站要多少钱 自己做一个网站需要的费用

    对于大多数网友来说创建一个网站要多少钱和自己做一个网站需要的费用的方法内容,继续往下看吧! 想搞一个网站,我们先了解一下搞个网站需要多少钱?网站建设费用主要包括:网站搭建

  • 做网站要多少钱一年 搭建网站的费用明细

    做网站要多少钱一年 搭建网站的费用明细

    全面的为大家介绍做网站要多少钱一年和搭建网站的费用明细方面的内容,具体介绍如下: 想搞一个网站,我们先了解一下搞个网站需要多少钱?网站建设费用主要包括:网站搭建、服务器费

  • 怎么自己建立网站 个人搭建网站的步骤详解

    怎么自己建立网站 个人搭建网站的步骤详解

    小编为大家说一说怎么自己建立网站和个人搭建网站的步骤详解的IT小经验,接下来就是全面介绍。 随着各种网页制作工具的普及,现在不懂技术的个人也能顺利建站了。不过使用网页制作工

  • mysql数据库约束有哪些

    mysql数据库约束有哪些

    这些知识你了解吗?mysql数据库约束有哪些方面的知识,接下来IT袋网带大家一起了解。 1、约束 什么是约束 对表中的数据进行限定,保证数据的正确性、有效性、完整性 约束通常是在创建表