版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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马驰率风,羊致清和线程之间的通信线程之间数据共享分析图马驰率风,羊致清和线程操作共享数据的安全性问题50ticket全局变量线程A线程B线程C马驰率风,羊致清和线程操作共享数据的安全性问题共享数据线程A锁定状态共享数据非锁定状态acquire()方法release()方法Lock马驰率风,羊致清和生产者与消费者模式生产者与消费者模式是线程模型中的经典问题,与编程语言无关。当程序中出现了明确的两类任务,一个任务负责生产数据,一个任务负责处理生产的数据时就可以使用该模式。马驰率风,羊致清和生产者与消费者模式Python内置模块queue中的Queue类方法名称功能描述put(item)向队列中放置数据,如果队列为满,则阻塞get()从队列中取走数据,如果队列为空,则阻塞join()如果队列不为空,则等待队列变为空task_done()消费者从队列中取走一项数据,当队列变为空时,唤醒调用join()的线程马驰率风,羊致清和本章总结程序:是指一系列有序指令的集合进程:启动后的程序称为进程,系统会为进程分配内存空间。创建进程的语法结构Process(group=None,target,name,args,kwargs)进程池:当需要上百、上千个进程的时候,就可以使用进程池Pool创建进程池的语法结构进程池对象=Pool(N)并发:是指两个或多个事件同一时间间隔发生,多个任务被交替轮换着执行并行:是指两个或多个事件在同一时刻发生,多个任务在同一时刻在多个处理器上同时执行马驰率风,羊致清和本章总结进程之间不存在共享数据,但可以使用队列进行通信线程是CPU可调度的最小单位,被包含在进程中,是进程中实际
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023八年级历史上册 第五单元 从国共合作到国共对立第17课 中国工农红军长征说课稿 新人教版
- 3 欢欢喜喜庆国庆(说课稿)-2024-2025学年统编版道德与法治二年级上册
- Module 3 Unit 1 What are you doing?(说课稿)-2024-2025学年外研版(三起)英语四年级上册
- 11《赵州桥》说课稿-2023-2024学年统编版语文三年级下册
- 1学会尊重(说课稿)-2023-2024学年道德与法治六年级下册统编版001
- Unit 3 Festivals and Customs Extended reading 说课稿-2024-2025学年高中英语译林版(2020)必修第二册
- 2023九年级物理下册 专题六 材料、信息和能源B 能源学说课稿 (新版)新人教版
- 2023二年级数学下册 六 田园小卫士-万以内的加减法(二)我学会了吗说课稿 青岛版六三制
- 2024-2025学年高中化学 专题五 电化学问题研究 5.1 原电池说课稿 苏教版选修6
- 《10 身边的新闻调查》(说课稿)-2023-2024学年三年级上册综合实践活动吉美版
- 父母赠与协议书
- 高校铸牢中华民族共同体意识教育的路径研究
- 《个人所得税征管问题及对策研究》
- 2022年云南省公务员录用考试《申论》真题(县乡卷)及答案解析
- 驾照体检表完整版本
- 分析化学(高职)PPT完整版全套教学课件
- 晚熟的人(莫言诺奖后首部作品)
- m拱顶储罐设计计算书
- 2023外贸业务协调期中试卷
- 新人教鄂教版(2017)五年级下册科学全册教学课件
- GB/T 29361-2012电子物证文件一致性检验规程
评论
0/150
提交评论