广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python多进程multiprocessing的原理和应用
  • 582
分享到

python多进程multiprocessing的原理和应用

2023-06-20 12:06:09 582人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python多进程multiprocessing的原理和应用”,在日常操作中,相信很多人在Python多进程multiprocessing的原理和应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家

这篇文章主要介绍“python多进程multiprocessing的原理和应用”,在日常操作中,相信很多人在Python多进程multiprocessing的原理和应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python多进程multiprocessing的原理和应用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

multiprocessing多进程

概念

python多进程multiprocessing的原理和应用

创建多进程基本流程

python多进程multiprocessing的原理和应用

创建进程对象

python多进程multiprocessing的原理和应用

启动进程 回收进程

python多进程multiprocessing的原理和应用

代码:

import multiprocessing as mpfrom time import sleep# 进程执行函数def fun():    print("开始一个进程")    sleep(3)    print("进程结束")# 创建进程对象p = mp.Process(target = fun)p.start()   # 启动进程p.join()    # 回收进程

运行结果:

开始一个进程
进程结束
Process finished with exit code 0

1 、父子进程是并行执行的 子进程执行函数 父进程执行除子进程外内容:

import multiprocessing as mpfrom time import sleep# 进程执行函数def fun():    print("开始一个进程")    sleep(3)    print("进程结束")# 创建进程对象p = mp.Process(target = fun)    # 把fun函数作为独立子进程 其它函数由进程来执行p.start()   # 启动进程sleep(2)print("父进程执行内容")p.join()    # 回收进程print("===============")"""pid = os.forkif pid == 0    fun()    os._exit(0)else:    os.wait()"""

运行结果:

开始一个进程
父进程执行内容
进程结束

===============

子进程不能改变父进程中变量的值
代码:

import multiprocessing as mpfrom time import sleepa = 1# 进程执行函数def fun():    print("开始一个进程")    sleep(3)    global a    print("a=", a)    a = 1000    print("a=", a)    print("进程结束")# 创建进程对象p = mp.Process(target = fun)    # 把fun函数作为独立子进程 其它函数由进程来执行p.start()   # 启动进程sleep(2)print("父进程执行内容")p.join()    # 回收进程print("===============")print("a=", a)

运行结果:

开始一个进程
父进程执行内容
a= 1
a= 1000
进程结束
a= 1

创建多个进程
代码:

"""创建多个进程"""from multiprocessing import Processimport osfrom time import sleepdef fun1():    sleep(2)    print(os.getppid(), '--', os.getpid(), "吃饭")def fun2():    sleep(3)    print(os.getppid(), '--', os.getpid(), "睡觉")def fun3():    sleep(4)    print(os.getppid(), '--', os.getpid(), "学习")jobs =[]for th in [fun1, fun2, fun3]:    p = Process(target = th)    jobs.append(p)    p.start()for i in jobs:    i.join()

运行结果:

46013 – 46022 吃饭
46013 – 46023 睡觉
46013 – 46024 学习

含有参数的进程函数
代码:

from multiprocessing import Processfrom time import sleep# 含有参数的进程函数def worker(sec, name):    for i in range(3):        sleep(sec)        print("I'm %s"%name)        print("I'm working...")# p = Process(target = worker, args = (2, "Tom"))p = Process(target = worker, kwargs = {'name':'tom', 'sec': 2})p.start()p.join()

运行结果:

I'm tom
I'm working…
I'm tom
I'm working…
I'm tom
I'm working…

案例练习

python多进程multiprocessing的原理和应用

代码:

from multiprocessing import Processimport osfilename = './dace.jpg'size = os.path.getsize(filename)# 复制上半部分def up():    fr = open(filename, 'rb')    fw = open('bot,jpg', 'wb')    n = size//2    fw.write(fr.read(n))    fw.close()    fr.close()# 复制下半部分def down():    fr = open(filename, 'rb')    fw = open('bot,jpg', 'wb')    fr.seek(size//2.0)    fw.write(fr.read())    fw.close()    fr.close()p = Process(target = up)q = Process(target = down)p.start()q.start()p.join()q.join()

到此,关于“python多进程multiprocessing的原理和应用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: python多进程multiprocessing的原理和应用

本文链接: https://www.lsjlt.com/news/296500.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python多进程multiprocessing的原理和应用
    这篇文章主要介绍“python多进程multiprocessing的原理和应用”,在日常操作中,相信很多人在python多进程multiprocessing的原理和应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-20
  • Python多进程库multiprocessing有什么作用
    这篇文章主要讲解了“Python多进程库multiprocessing有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python多进程库multiprocessing有什么作用”吧...
    99+
    2023-06-15
  • Python多进程multiprocessing包有什么作用
    这篇文章主要讲解了“Python多进程multiprocessing包有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python多进程multiprocessing包有什么作用”吧...
    99+
    2023-06-02
  • 总结python多进程multiprocessing的相关知识
    multiprocessing多进程 概念 创建多进程基本流程 创建进程对象 启动进程 回收进程 代码: import multiprocessing as mp from time import sle...
    99+
    2022-06-02
    python multiprocessing多进程 Python多进程
  • Python多进程库multiprocessing中进程池Pool类的使用详解
    问题起因 最近要将一个文本分割成好几个topic,每个topic设计一个regressor,各regressor是相互独立的,最后汇总所有topic的regressor得到总得预测结果。没错!类似baggi...
    99+
    2022-06-04
    进程 详解 Python
  • 像线程一样管理进程的Python multiprocessing库
    目录一、创建一个进程二、设置进程名三、守护进程四、join()五、强制结束进程六、进程退出状态码七、日志八、派生进程一、创建一个进程 要创建一个进程,最简单的方式是用一个目标函数实例化一个Process对象,然后与t...
    99+
    2022-06-02
    Python multiprocessing库 python库
  • 如何在python中使用multiprocessing实现多进程并行计算
    如何在python中使用multiprocessing实现多进程并行计算?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python是什么意思Python是一种跨...
    99+
    2023-06-06
  • Python多进程怎么应用
    这篇文章主要讲解了“Python多进程怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python多进程怎么应用”吧!并行和串行计算想象一下,你有一个...
    99+
    2022-10-19
  • python多进程和多线程的实际用法
    这篇文章主要讲解了“python多进程和多线程的实际用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python多进程和多线程的实际用法”吧!  写在前面  总所周知,unix/linux...
    99+
    2023-06-02
  • python中的多进程处理
      众所周知,python本身是单线程的,python中的线程处理是由python解释器分配时间片的;但在python 3.0中吸收了开源模块,开始支...
    99+
    2023-01-31
    进程 python
  • python中多进程和多线程的使用方法
    这篇文章主要介绍了python中多进程和多线程的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。进程和线程进程是系统进行资源分配的最小单位,线程是系统进行调度执行的最小...
    99+
    2023-06-14
  • python 多进程和多线程使用详解
    目录进程和线程 Python的多进程 进程池 多进程间的数据通信与共享 Python的多线程 多线程间的数据共享 使用queue队列通信-经典的生产者和消费者模型进程和线程 进程是...
    99+
    2022-11-12
  • Python metaclass的原理及应用
    这篇文章主要介绍“Python metaclass的原理及应用”,在日常操作中,相信很多人在Python metaclass的原理及应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python metacl...
    99+
    2023-06-02
  • Android中应用多进程的整理总结
    前言 在计算机操作系统中,进程是进行资源分配和调度的基本单位。这对于基于Linux内核的Android系统也不例外。在Android的设计中,一个应用默认有一个(主)进程。但是...
    99+
    2022-06-06
    进程 多进程 Android
  • 用python3的多进程和协程处理MyS
    本文介绍用python3的多进程 + 协程处理MySQL的数据,主要逻辑是拉取MySQL的数据,然后使用flashtext匹配关键字,在存回MySQL,代码如下(async_mysql.py): import time import asy...
    99+
    2023-01-31
    进程 和协 MyS
  • python 多进程和协程配合使用
    有一批key已经写入到3个txt文件中,每一个txt文件有30万行记录。现在需要读取这些txt文件,判断key是否在数据仓库中。(redis或者mysql)为空的记录,需要写入到日志文件中! 任务分工1. 使用多进程技术,每一个进...
    99+
    2023-01-31
    进程 和协 python
  • Python下进程与线程的原理及区别
      对于所有的语言都可能会遇到进程和线程的问题,一般情况下线程是由进程产生的,一个进程产生多个线程来按照一定的规则(Python下根据CPU调度算法和全局进程锁)来利用CPU,我们称之为多线程模式;而一个进程在产生的同时,同时会生成一个主线...
    99+
    2023-01-31
    线程 进程 区别
  • Python中的进程池和线程池的适用场景和实现原理是什么?
    Python中的进程池和线程池的适用场景和实现原理是什么?引言:在编写程序时,为了提高执行效率,经常会使用并发编程来同时执行多个任务。Python提供了进程池和线程池这两种用于并发处理任务的工具。本文将详细介绍进程池和线程池的适用场景和实现...
    99+
    2023-10-22
    线程池 实现原理 进程池 适用场景
  • java多线程join()方法的作用和实现原理解析(应用场景)
    1、join() 方法的作用     这个方法的作用是先将当前线程挂起,待其他线程结束后在执行当前线程的代码; 2、应用场景 比如有三个人小红、小李、小王, 三...
    99+
    2022-11-12
  • React ref的原理和应用
    本篇内容介绍了“React ref的原理和应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!提到 ref或...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作