python入门开发学习笔记之开启进程的两种方式

Python创建进程、线程的两种方式 代码创建进程和线程的两种方式 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:101677771 """ 定心丸:Python创建进程和线程的方式基本都是一致的,包括其中的调用方法等,学会一个 另一个自然也就会了。 """ 1.创建进程的两种方式 方式一 阅读详情

本节重点

掌握multiprocessing模块开启进程的两种方式
本节时长需控制在15分钟内

一 multiprocessing模块介绍

python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。

Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,>提供了Process、Queue、Pipe、Lock等组件。

需要再次强调的一点是:与线程不同,进程没有任何共享状态,进程修改的数据,改动仅限于该进程内。

二 Process类的介绍

创建进程的类:

Process([group [, target [, name [, args [, kwargs]]]]]),由该类实例化得到的对象,可用来开启一个子进程

强调:

  1. 需要使用关键字的方式来指定参数
  2. args指定的为传给target函数的位置参数,是一个元组形式,必须有逗号
    参数介绍:

group参数未使用,值始终为None

target表示调用对象,即子进程要执行的任务

args表示调用对象的位置参数元组,args=(1,2,‘egon’,)

kwargs表示调用对象的字典,kwargs={‘name’:‘egon’,‘age’:18}

name为子进程的名称
方法介绍:

p.start():启动进程,并调用该子进程中的p.run()
p.run():进程启动时运行的方法,正是它去调用target指定的函数,我们自定义类的类中一定要实现该方法

p.terminate():强制终止进程p,不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程,使用该方法需要特别小心这种情况。如果p还保存了一个锁那么也将不会被释放,进而导致死锁
p.is_alive():如果p仍然运行,返回True

p.join([timeout]):主线程等待p终止(强调:是主线程处于等的状态,而p是处于运行的状态)。timeout是可选的超时时间。
属性介绍:

p.daemon:默认值为False,如果设为True,代表p为后台运行的守护进程,当p的父进程终止时,p也随之终止,并且设定为True后,p不能创建自己的新进程,必须在p.start()之前设置

p.name:进程的名称

p.pid:进程的pid

三 Process类的使用

注意:在windows中Process()必须放到# if name == ‘main’:下

创建并开启子进程的方式一

import time
import random
from multiprocessing import Process

def piao(name):
    print('%s piaoing' %name)
    time.sleep(random.randrange(1,5))
    print('%s piao end' %name)

if __name__ == '__main__':
    #实例化得到四个对象
    p1=Process(target=piao,args=('egon',)) #必须加,号
    p2=Process(target=piao,args=('alex',))
    p3=Process(target=piao,args=('wupeqi',))
    p4=Process(target=piao,args=('yuanhao',))

    #调用对象下的方法,开启四个进程
    p1.start()
    p2.start()
    p3.start()
    p4.start()
    print('主')

创建并开启子进程的方式二

import time
import random
from multiprocessing import Process

class Piao(Process):
    def __init__(self,name):
        super().__init__()
        self.name=name
    def run(self):
        print('%s piaoing' %self.name)

        time.sleep(random.randrange(1,5))
        print('%s piao end' %self.name)

if __name__ == '__main__':
    #实例化得到四个对象
    p1=Piao('egon')
    p2=Piao('alex')
    p3=Piao('wupeiqi')
    p4=Piao('yuanhao')

    #调用对象下的方法,开启四个进程
    p1.start() #start会自动调用run
    p2.start()
    p3.start()
    p4.start()
    print('主')

四 练习题

1、思考开启进程的方式一和方式二各开启了几个进程?

2、进程之间的内存空间是共享的还是隔离的?下述代码的执行结果是什么?

from multiprocessing import Process

n=100 #在windows系统中应该把全局变量定义在if __name__ == '__main__'之上就可以了

def work():
    global n
    n=0
    print('子进程内: ',n)


if __name__ == '__main__':
    p=Process(target=work)
    p.start()
    print('主进程内: ',n)

3、基于多进程实现并发的套接字通信?

4、思考每来一个客户端,服务端就开启一个新的进程来服务它,这种实现方式有无问题?

使用Python启动程序 要启动交互式解释器,可以在命令行中输入"python"命令。Python具有广泛的应用领域,你可以编写各种类型的程序,从简单的脚本到复杂的Web应用程序。在命令行中使用Python解释器来执行Python脚本是最常见的启动方式。以PyCharm为例,我们可以按下快捷键"Shift+F10"或点击工具栏上的运行按钮来启动程序。在打开的编辑器中,选择要运行的Python脚本,然后点击运行按钮即可。下面将介绍三种常用的方法。无论你选择哪种启动方式,下面是一个简单的示例程序,用于打印"Hello, World! 阅读详情

相关推荐

ReportStudio入门教程(四十一) - 固定报表列宽

我们继续上一篇博客,让他看起来

什么是江湖? 3518

开启进程的两种方式

一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threadin...

aizhui7038的博客 574

VirtualBox创建虚拟机(为安装Ubuntu桌面系统)

Ubuntu的安装非常灵活。但是万变不离其宗,归纳起来,无非就是以下3种:(1)用户可以下载完整的ISO镜像文件,将其转移到各种介质上面,例如DVD或者U盘,然后以该介质引导系统进行安装。(2)用户可以下载一个非常小的网络安装器,利用该安装器引导系统进行在线安装。(3)用户可以将Ubuntu安装到一个U盘中,随身携带。为了便于读者学习,本节将介绍通过完整的ISO镜像文件安装Ubuntu。其他的安装方式将在后面介绍。

夏天又到了的专栏 2688

如何在 Python 中启动后台进程?

后台进程是在后台运行的程序或任务,它们不会阻塞主程序的执行,并可以在后台处理一些耗时或周期性的任务。在本文中,我们将探讨如何在Python中启动后台进程,并介绍一些内置模块和第三方库来实现这一目标。

网络技术联盟站 3091

立创星火计划:基于STM32H743VIH6的Maverick_H743_MK1.0高性能开源飞控硬件全解析

本文详细解析了基于STM32H743VIH6核心的Maverick_H743_MK1.0高性能开源飞控硬件设计。重点阐述了采用双IMU冗余设计、高精度气压计、多路独立电源管理以及丰富接口(如CAN总线)的考量,旨在为穿越机、科研无人机等平台提供强大、可靠的飞行控制解决方案。

weixin_28787801的博客 198

使用Avalonia跨Linux平台

Avalonia类似使用WPF的技术方法来开发,所以,需要会使用WPF,其中的一些语法和写法与WPF有所区别,但是他们相差不大,会WPF的话,基本上可以看看文档后,完全掌握Avalonia的使用,从而达到跨平台开发的任务。其实写法有些不一样,可以参考官网的说明,进行修改。2. 安装完成后,重启VS2022,我们可以看到1和2,其中1是使用MVVM模式开发,2是普通模式开发,我们选择2,建立项目。9.直接双击粉红色的文件,进行安装,输入密码,但是美中不足的是,好像没有图标,图标似乎需要单独去设置。

故里2130 1万+

python启动进程_Python开启进程的2中方式

知识点一:进程的理论进程:正在进行的一个程序或者说一个任务,而负责执行任务的则是CPU进程运行的的三种状态:1.运行:(由CPU来执行,越多越好,可提高效率)2.阻塞:(遇到了IQ,3个里面可以通过减少阻塞有效的来提高效率)3.就绪:(等待CPU来执行的过程)知识点二:开启进程的两种方式开启进程:开启进程就是将父进程里面串行执行的程序放到子进程里,实现并发执行,这个过程中,会将父进程数据拷贝一份到...

weixin_39912250的博客 1190

手把手教你学Simulink--人形机器人控制场景实例:基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真

matlab编辑% 连杆长度 (m)% 躯干(髋到CoM)% 大腿% 小腿% 质量 (kg)% 转动惯量(绕质心,简化为杆)matlab编辑% 躯干CoM(假设在髋上方L_body/2处)% 左大腿CoM% 左小腿CoM% (右腿类似,略)本文完成了基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真,实现了:✅ 定义7-DOF平面人形结构✅ 使用Symbolic Math Toolbox自动推导动力学方程✅ 生成。

MHD0815的博客 146

python启动方法_Python设置进程启动的2种方式

根据平台的支持,Python 支持三种启动进程的方式:1) spawn父进程会启动一个全新的 Python 解释器进程。在这种方式下,子进程只能继承那些处理 run() 方法所必需的资源。典型的,那些不必要的文件描述器和 handle 都不会被继承。使用这种方式来启动进程,其效率比使用 fork 或 forkserver 方式要低得多。Windows 只支持 spawn 方式来启动进程,因此在 W...

weixin_39607473的博客 1382

改进yolov8|BackBone改进:PWConv、FasterNeXt替换yolov8主干网络

各位哥哥姐姐弟弟妹妹大家好,我是干饭王刘姐,主业干饭,主业2.0计算机研究生在读。和我一起来改进yolov8变身计算机大牛吧!本文中的论文笔记都是刘姐亲自整理,原创整理哦~

weixin_44379985的博客 748

如何利用gretna软件计算脑网络全局属性(聚类系数,小世界属性,最短路径),局部属性指标(度,度分布,节点效率),如何理解网络稀疏度

grena工具箱被设计用于fMRI数据的图论网络分析。它是一套MATLAB函数和基于MATLAB的接口,用于常规的fMRI预处理,用于计算和统计分析最常用的网络指标,如小世界参数、效率、度、间性、关联性、层级性、同步性和模块化。......

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 9174

python开启进程的两种方式

关于开启进程的两种方式(python) *做任何事情的第一步,首先弄清基础问题,基础决定上层建筑,所以不要小看概念哦。 一、首先来看几个概念 1、并行:是指两件或多件事情,在同一时间点执行,是物理时空观上,同时间处理多件事情 2、并发:是指两件事情或多件事情,在同一时间间隔内同时执行,在微观上,并不是“同一时刻进行的”,而是通过进程间相互快速交替执行,达到一种宏观上同微小一时间段处理很多事情,感觉...

weixin_44715077的博客 1717

SpringCloud Alibaba - Seata 实现高可用和异地容灾

这里不仅仅要实现高可用,还需要实现异地容灾. 异地容灾就是说,如果你整了好几个节点部署起来,全部放到一个机房里面,那么如果这个机房出了故障,就意味着整个集群就完了,所以对于一个大型的集群来讲,都会把这些服务异地部署.问题2:如果我们要实现异地容灾,也就说某一个机房挂了,需要快速的切换到另一个可用的机房,但是这个配置在配置文件中写死了,如果要改配置文件,还需要重启服务器,这是我们不希望看到的,怎么办?进入 seata/bin 目录,运行 seata-server.bat 文件,默认端口为 8091。

CYK_byte的博客 975

进程(开启进程的两种方式)

一、开启进程的两种方式方式一:from multiprocessing import Processimport timedef task(x): print('%s is running' %x) time.sleep(3) print('%s is done' %x)if __name__ == '__main__': # Process(target=tas...

aoni3517的博客 1264

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python 开启子进程的两种方式

进程: 是程序执行过程 启动进程,用某种方式开启子进程,帮咱们把咱们这个进程里的某一个任务并发执行以下 from multiprocessing import Process import time def task(name): print('%s is running' %name) time.sleep(3) print('%s is done' %name) ...

我只是个小学生 能力有限 一直抱着学习的态度 1572

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

进程理论以及开启子进程的两种方式

进程理论(book:现代操作系统) 为何开启子进程需要放在main下面:因为运行到start他会向操作系统发起启动子进程的信号,然后操作系统会把整个代码块执行下,找到子进程要执行的任务, 代码运行到最下面,又执行了start,又重复执行一次。线程可以不放在main下面是因为线程不用导入主线程里的东西,他们共享资源。 进程就是一个正在运行的程序或者说是一个程序的运行过程。 pid ...

ZHOUXIN0426的博客 379

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

并发编程多进程之开启进程的两种方式

并发编程多进程之开启进程的两种方式 本节重点 掌握multiprocessing模块开启进程的两种方式 一、multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分的使用CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。 python提供了multiprocessing。multiprocessing模块用来开...

唯美清泠 236

2-2、开启进程的两种方式

一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接...

vettel2018的博客 225

【python学习笔记】并发编程多进程之开启进程的两种方式

本系列为自己学习Python的笔记,如有误,欢迎大家指正 一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。multiprocessing模块的功能众多:支持子.

weixin_51656605的博客 2511

python启动方法_python进程开启的两种方式

一、进程1.1、方式一from multiprocessing import Processimport time#方式一def task(name):print(f"my name is {name},启动时间")time.sleep(2)print(f"my name is {name},停止时间")if __name__ == '__main__':# 1 创建一个对象p = Process...

weixin_39845613的博客 469

并发编程——线程与进程,开启线程的两种方式,多线程与多进程

文章目录1 线程和进程2 开启线程的两种方式threading模块,与进程方法类似2.1 方式一:2.2 方式二:3 多线程与多进程的区别3.1 进程开销大于线程3.2 同一进程内的线程共享数据,进程之间数据隔离3.3 同一进程内线程pid一样,进程与进程的pid不一样4 Thread对象其他属性或方法Thread 对象的方法:threading模块提供的方法: 1 线程和进程 1、线程是一个...

起风了 758

Python 开启线程和进程的两种方式

Python 开启进程和线程的两种方式 进程和线程的差别 开销 在发生开启进程给操作系统时,操作系统需要申请内存空间给子进程,拷贝父进程地址空间到子进程,而开启线程不需要这些步骤,因此开启进程开销远大于线程,开启速度为线程快 地址空间 进程之间地址空间是隔离的,开多个进程,每个进程都有不同的pid,但子进程的数据是来自于拷贝父进程的数据,进程之间存在父子进程概念。 一个进程默认分配一个线程,同一进程内开启的多个线程是共享该进程地址空间的,线程之间的关系平等,不存在什么父子关系。 启用进程 方式一: 使用

贤哲XianZhe的博客 795

进程的创建,创建进程的两种方式

一:进程的创建      1,系统的初始化       2,一个进程在运行过程中开启了子进程       3,用户的交互式请求,而创建一个新进程(如双击qq)       4,一个批处理作业的初始化(只在大型机的批处理系统中应用)        关于进程的创建,UNIX和WINDOWS        1,在unix中系统调用的是:fork,fork会创建一个与父进程一摸一样的副本         ...

boteman123的博客 1万+

网络通信与并发编程(四)操作系统、进程理论、开启进程的两种方式

p=Myprocess('子进程1')如上方代码所示创建子进程p。p.terminate()表示向操作系统请求强制终止子进程p。p.is_alive()表示查看子进程是否存活。p.pid表示子进程的pid号。如果想查看父进程的pid可以在父进程使用os.getpid()或者在子进程使用os.getppid()p.name表示子进程的名称。

m0_45491627的博客 1205

python如何关闭multiprocess_python 开启进程两种方法 multiprocessing模块 介绍

一 multiprocessing模块介绍python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。...

weixin_32556315的博客 958

进程的俩种开启方式

目录 开启子进程的方式1 方式1开启多个子进程 开启子进程的方式2 验证隔离性(内存空间隔离) 僵尸进程和孤儿进程 开启子进程的方式1 from multiprocessing import Process import t...

disui7868的博客 379
上一篇: python入门开发学习笔记之进程理论
下一篇: python入门开发学习笔记之join方法
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值