【python中的多进程了解一下?】

文章介绍了多进程的概念,以及Python中multiprocessing模块如何实现多进程。通过示例展示了如何对图像进行处理和爬取网页标题,强调了进程间通信如队列、管道和共享内存的使用。还提到了锁在同步和互斥中的作用,以及在多进程编程中防止数据竞争的重要性。
摘要由CSDN通过智能技术生成

在这里插入图片描述

基本说明

多进程是指在同一台计算机中同时运行多个独立的进程。每个进程都有自己的地址空间,可用于执行一些特定的任务。这些进程可以同时执行,从而提高了程序的性能和效率。多进程可以在多核计算机上实现真正的并行计算,可以同时运行多个程序,从而大大提高了计算机的利用率。

在多进程编程中,进程之间是独立的,它们各自运行自己的程序,有自己的地址空间和系统资源,不会相互干扰。每个进程都有自己的PID(进程标识符),它是一个唯一的标识符,用于在系统中识别该进程。多进程可以通过IPC(进程间通信)来实现数据共享和通信。

Python的多进程模块multiprocessing提供了一种方便的方法来创建和管理多个进程。它可以在单个Python解释器中创建多个进程,从而实现并行计算。multiprocessing模块还提供了一些方便的功能,如进程池、进程通信和共享内存等。

多进程编程可以在很多场景中提高程序的运行效率,如CPU密集型任务、I/O密集型任务、并行计算、大规模数据处理和机器学习等。但需要注意多进程之间的数据同步和通信,以避免数据竞争和死锁等问题。

import multiprocessing
from PIL import Image, ImageFilter

def process_image(filename, size, q):
    """使用高斯模糊对图像进行处理"""
    img = Image.open(filename)
    img = img.resize(size)
    img = img.filter(ImageFilter.GaussianBlur(radius=5))
    q.put(img)

if __name__ == '__main__':
    filenames = ["image1.jpg", "image2.jpg", "image3.jpg"]
    size = (800, 800)
    q = multiprocessing.Queue()
    processes = []
    for filename in filenames:
        p = multiprocessing.Process(target=process_image, args=(filename, size, q))
        processes.append(p)
        p.start()
    for p in processes:
        p.join()
    images = []
    while not q.empty():
        images.append(q.get())
    for i, img in enumerate(images):
        img.save(f"processed_image_{
     i}.jpg"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值