第11章 Python常用模块_第1页
第11章 Python常用模块_第2页
第11章 Python常用模块_第3页
第11章 Python常用模块_第4页
第11章 Python常用模块_第5页
已阅读5页,还剩169页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、牙齿课件包含演示、样本、代码、问题银杏、视频、声音等,北风网和讲师都具备完整的知识产权功能。只有善意学习者可以用于本课程用途,在课程范围内传播第三方将被渡边杏。其他人或机构将渡边杏盗版、复制、仿造其中的想法和内容,我们保留通过所有法律手段追究违反者的权利。课程详细信息包括:北风教育官方网站:法律声明,上海市田径网络技术有限公司,AI实战工程师,python共同模块演示者:榴莲,您想将字符串时间2017-10-10 2:400更改为Time=2017/10/10 23:403:00 3,例如Time=2017-10-10 23:403:00将当前时间戳格式副本导入到指定的格式日期。4.得到3天前

2、的时间。1.发展背景2。流程和线程之间的差异3。python多线程模块threading 4。python多进程模块multiprocessing 5。队列模块Linux,1。开发背景-调度作业,大部分操作系统(如www)作业运行的短时间称为时间片,作业运行的状态称为运行状态,作业运行一段时间后强制挂起,以便执行以下操作:暂停的作业处于就绪状态,等待下一个时间片的到来。(David assell,Northern Exposure(美国电视电视剧),工作任务)CPU的执行效率很高,时间片很短,给人的感觉是各个任务之间快速切换,多个任务同时进行,这就是我们所说的并发(在一个时间间隔内,多个任务同

3、时进行)。1 .开发背景-流程操作系统负责电脑管理员、任务日程、资源的分配和管理,统领整个电脑硬件。应用程序节目方面是具有在操作系统上运行的功能的程序。流程是具有特定独立功能的程序在一个数据集上动态运行的流程,是操作系统资源分配和调度的独立单元,是应用节目运行的载体。过程是抽象的概念,并没有统一的标准定义。流程通常由三部分组成:节目、数据集和流程控制块。程序用于说明进程要执行的功能的是控制进程执行的命令集。数据集是运行程序所需的数据和工作区。包含进程的描述性信息和控制信息的节目控制块(PCB)是进程存在的唯一标志。过程的特征:动态:过程是程序的执行过程,短暂、有生命、动态发生、动态消亡。并发:

4、所有进程可以与其他进程同时运行。独立性:流程是系统分配和保留资源的独立单位。结构:流程由三部分组成:节目、数据和流程控制块。早期操作系统没有线程的概念牙齿。流程是可以独立于资源运行的最小单位,也是节目运行的最小单位。任务调度采用了时间切片旋转的抢占调度方法,进程是任务调度的最小单位,每个进程都有唯一的内存片段,因此进程间内存地址是隔离的。随后,随着计算机的发展,对CPU的要求越来越高,跨进程的切换开销也越来越大,无法满足日益复杂的程序的要求。所以我发明了线程。线程是节目执行的单一顺序控制流程、节目执行流的最小单位、处理器计划和调度的基本单位。一个进程可以有一个或多个线程,每个线程之间可以共享程

5、序的内存空间(即进程的内存空间)。标准线程由线程ID、当前命令指针(PC)、寄存器和堆栈组成。进程由内存空间(代码、数据、进程空间、开放档案)和一个或多个线程组成。1 .开发背景-螺纹,2 .进程和线程之间的差异,1 .线程是节目执行的最小单位,进程是操作系统分配资源的最小单位。2.进程由一个进程中的一个或多个线程组成,这些线程是代码的其他执行路径。3.进程独立于徐璐,但同一进程下的线程与程序的内存空间(包括片段、数据集、堆等)共享某些进程级资源(例如打开档案和信号),一个进程中的线程对另一个进程不可见。4.调度和切换:比线程上下文切换进程上下文切换快得多。总之,线程和进程都是抽象的概念,线程

6、是比进程小的抽象,可以同时用于实现线程和进程。2 .进程和线程之间的差异1,2。进程和线程之间的差异2。如果需要在单线程中处理多个任务,则必须确定处理器执行的顺序,并按牙齿顺序执行任务。如果我们创建了两个茄子任务:听音乐和看电影。单线程可以按先后顺序执行两个牙齿茄子任务。3 .单线程,3.python的多线程,多线程到python,但是遗憾的是,Python仅支持一个线程执行(为什么?查看下一页PPT)。3 .python多线程模块,thread模块threading模块threading模块推荐threading模块的主要原因是thread不支持守护程序线程。主线程终止后,所有子线程都将强制

7、终止,无论其是否仍在运行。有时我们不想发生这种行为。这时引入了金俊勉线程的概念。Threading模块支持守护程序线程,3 .python多线程基本步骤,使用threading简介-1,threading.thread (self,group=none,target=none线程有两种创建方法。一种是通过继承Thread类来重写run方法。另一个是将可调用对象从初始化函数(_ _init_)传递到参数的threading。创建Thread对象。参数组保留以供将来扩展。参数目标是线程启动后运行的可调用对象(也称为活动活动活动)。参数name是线程的名称。默认值为“Thread-N”,N是数字。参

8、数args和kwargs分别表示调用target时的参数列表和关键字参数列表。3 .添加多线程、上一个关联音乐和电影视图多线程、使用threading简介-2,Thread类定义用于获取Thread.getName()/T牙齿线程名称的常用方法和属性,线程标识符为整数(不是0牙齿),仅在调用start()方法时有效。否则,仅返回None。thread . is _ alive()/thread . is alive确保线程处于活动状态(alive)。从start()方法调用开始,线程将处于活动状态,直到run()方法执行完成,或引发未处理的异常并中断。调用Thread.jo

9、in(timeout)牙齿Thread.join将阻止线程,直到调用线程执行结束或超时。参数timeout是表示超时的数字类型。如果没有提供牙齿时间,主线程将阻塞,直到调整后的线程结束。threading简介-3,使用Thread.join(timeout)调用Thread.join时,主线程将阻塞,直到调用线程执行结束或超时。参数timeout是表示超时的数字类型。如果没有提供牙齿时间,主线程将阻塞,直到调整后的线程结束。什么是子线程?Threading。包含在Thread中,全部视为子线程。什么是主线程?除了“Thread中未包含的节目”外,Main界面和主函数都是主线程,均显示为主线程。

10、threada.join用法简介-4,Thread类还定义了以下常用方法和属性:管理thread的python具有两个茄子函数:Join()和setDaemon() join:从线程b调用thread1,牙齿set daemon:set daemon()执行执行绪之前。必须设置为获取thread . is daemon()/thread . daemon牙齿线程的名称。具有返回值。需要打印。3.多线程,例如,GIL不是python的特性,供应商们为了有效地解决多个缓存之间的数据同步,付出了很多努力,拥有了GIL,不可避免地带来了一定程度的性能损失。蟒蛇当然也逃不掉。为了利用多核,python开

11、始支持多线程。解决多线程之间的数据完整性和状态同步的最简单方法是自然锁定。因此,有一个叫GIL的超级锁GIL牙齿无疑是全球专有锁。毫无疑问,全球锁定的存在会对多线程效率产生重大影响。甚至Python是单线程程序。那么读者会说,解开全球锁的勤奋效率也不会差。在执行耗时的IO操作时,如果能够禁用GIL,则可以提高操作效率。或者再坏也不比单线程效率差。理论上是这样的,但实际上呢?python比你想象的更糟。但是,当CPU有多个内核时,会出现问题。从Release GIL到acquire GIL几乎没有间隔。因此,当其他内核中的其他线程醒来时,在大多数情况下,主线程已经重新获得了GIL。此时,唤醒运行

12、的线程只会白白浪费CPU时间,只能看着其他线程拿着GIL愉快地执行。然后到达切换时间后,日程进入待定状态,醒来,等待,重复恶性循环。GIL的存在使多线程无法充分利用多核CPU的并行处理能力。GIL全局解释锁定简介,3 .多线程,例如,4。使用多处理而不是Python多进程、thread multiprocessing库通常是为了弥补thread库效率低下的GIL的不足。牙齿产品完全复制thread提供的介面集,以方便迁移。唯一的区别是使用多个进程而不是多线程。每个进程都有自己独立的GIL、完全并行、GIL无限制(进程中包括线程)牙齿,以充分利用多核多核心处理器环境,从而避免进程间的GIL争用。

13、4 .python多进程,python多进程并发,模块名称:多处理器python多线程物理多线程,在大多数情况下,python需要多进程才能充分利用多核心处理器CPU资源。牙齿包简化了从单个进程到并发执行的转换。导入方法:多处理导入,多处理使用简介-1,多处理包是python的多流程管理包。Threading。与Thread类似,multiprocessing。可以使用Process对象创建流程。牙齿Process对象与Thread对象的使用方法相同,方法包括start()、run()、join()等。多多线程包还包含Lock/Event/Semaphore/Condition类。lock/e

14、vent/semaphore/condition类与threading包中的thread类相同,可以参数通过网络同步进程,因此,multiprocessing的很大一部分使用与Threading相同的API,但已更改为多进程方案。Multiprocessing提供了threading包中没有的IPC(如Pipe和Queue),因此效率更高。必须优先考虑Pipe和Queue,以避免使用Lock/Event/Semaphore/Condition等同步机制(因为它们占用的是线程,而不是用户进程的资源)。Process,创建进程的类:process (group,start,name,args,kw

15、args)方法:is_alive(),join (TTS、创建函数和进程、创建函数、作为单个进程创建函数,以及将进程定义为多个进程。多进程的几种茄子方法,Lock:可以在访问资源时避免冲突。Pool:提供指定数量的进程Queue:多进程安全队列。多进程间资料传输在Pipe:实现管道模式下发送和接收消息、锁定、同步和异步并发执行:当一个进程执行操作时,其他进程必须等到执行完成后才能继续执行。锁定可确保多个进程修改同一数据时,一次只能修改一个操作。是的,速度慢,但牺牲速度可以确保数据安全。异步运行:当一个进程运行作业时,其他进程可以不等待运行完成就运行,并在返回消息时警告您处理它们,从而提高运行效率。Lock、pool、Pool提供了用户可以调用的指定数量的进程,在将新请求提交到Pool时,可以处理这些进程,但是,如果池中的进程数已达到指定的最大值,则在池中的进程结束之前,将不会创建并运行新进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论