Python程序设计教程第13章-进程与线程.pptxVIP

Python程序设计教程第13章-进程与线程.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第13章-进程与线程

本章目标了解什么是程序与进程掌握创建进程的方式掌握进程之间的通信了解进程与线程的概述掌握创建线程的方式掌握线程之间的通信方式掌握生产者与消费者模式

初识程序与进程程序英文单词为Program,是指一系列有序指令的集合,使用编程语言所编写,用于实现一定的功能

初识程序与进程进程进程则是指启动后的程序,系统会为进程分配内存空间

创建进程的方式第一种创建进程的语法构: Process(group=None,target,name,args,kwargs)参数说明:group:表示分组,实际上不使用,值默认为None即可target:表示子进程要执行的任务,支持函数名name:表示子进程的名称args:表示调用函数的位置参数,以元组的形式进行传递kwargs:表示调用函数的关键字参数,以字典的形式进行传递

创建进程的方式方法/属性名称功能描述name当前进程实例别名,默认为Process-Npid当前进程对象的PID值is_alive()进程是否执行完,没执行完结果为True,否则为Falsejoin(timeout)等待结束或等待timeout秒start()启动进程run()如果没有指定target参数,则启动进程后,会调用父类中的run方法terminate()强制终止进程

创建进程的方式第二种创建进程的语法构: class子进程(Process):pass

Pool进程池进程池的原理是:创建一个进程池,并设置进程池中最大的进程数量。假设进程池中最大的进程数为3,现在有10个任务需要执行,那么进程池一次可以执行3个任务,4次即可完成全部任务的执行。创建进程池的语法结构: 进程池对象=Pool(N)

Pool进程池方法名功能描述apply_async(func,args,kwargs)使用非阻塞方式调用函数funcapply(func,args,kwargs)使用阻塞方式调用函数funcclose()关闭进程池,不再接收新任务terminate()不管任务是否完成,立即终止join()阻塞主进程,必须在terminate()或close()之后使用

并发和并行并发是指两个或多个事件同一时间间隔发生,多个任务被交替轮换着执行,比如A事件是吃苹果,在吃苹果的过程中有快递员敲门让你收下快递,收快递就是B事件,那么收完快递继续吃没吃完的苹果。这就是并发。

并发和并行并行指两个或多个事件在同一时刻发生,多个任务在同一时刻在多个处理器上同时执行。比如A事件是泡脚,B事件是打电话,C事件是记录电话内容,这三件时则可以在同一时刻发生,这就是并行。

进程之间的通信100多个进程之间数据可以共享吗?进程A进程Baa+=30a-=50

进程之间的通信各进程之间的数据操作

进程之间的通信进程之间可以通过队列(Queue)进行通信,队列是一种先进先出(FirstInFirstOut)的数据结构创建队列的语法结构: 队列对象=Queue(N)

进程之间的通信方法名称功能描述qsize()获取当前队列包含的消息数量empty()判断队列是否为空,为空结果为True,否则为Falsefull()判断队列是否满了,满结果为True,否则为Falseget(block=True)获取队列中的一条消息,然后从队列中移除,block默认值为Trueget_nowait()相当于get(block=False),消息队列为空时,抛出异常put(item,block=True)将item消息放入队列,block默认为Trueput_nowait(item)相当于put(item,block=False)

进程之间的通信使用队列实现进程之间通信的原理是什么呢?

线程线程线程是CPU可调度的最小单位,被包含在进程中,是进程中实际的运作单位。一个进程中可以拥有N多个线程并发执行,而每个线程并行执行不同的任务。程序进程2进程1进程3线程A线程B线程C

创建线程的方式函数式创建线程的语法结构: t=Thread(group,target,name,args,kwargs)参数说明:group:创建线程对象的进程组target:创建的线程对象所要执行的目标函数name:创建线程对象的名称,默认为“Tread-n”args:用元组以位置参数的形式传入target对应函数的参数kwargs:用字典以关键字参数的形式传入target对应函数的参数

创建线程的方式使用Thread子类创建线程的操作步骤是:自定义类继承threading模块下的Thread类实现run方法

线程之间的通信线程之间的数据可以共享吗?100线程A线程Baa+=30a-=50

线程之间的通信线程之间数据共享分析图

线程操作共享数

文档评论(0)

***** + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2025年02月18日上传了教师资格证

1亿VIP精品文档

相关文档