第13章 线程与进程_第1页
第13章 线程与进程_第2页
第13章 线程与进程_第3页
第13章 线程与进程_第4页
第13章 线程与进程_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

Python从入门到实战第十三章线程与进程 第十三章讲解主要内容 13 1接触多任务技术13 2第一个多线程13 3线程同步13 4线程队列模块13 5并发进程模块13 6其他同步方法 13 1接触多任务技术 1 进程 Process 通俗表达就是在计算机内存中运行的一个软件实例 是线程的容器 13 1接触多任务技术 2 线程 threading 有时被称为轻量级进程 LightWeightProcess LWP 是程序执行流的最小单元 一个标准的线程由线程ID 当前指令指针 寄存器集合和堆栈组成 线程是进程的一部分 进程可以包含若干个线程 13 1接触多任务技术 Python多线程模块包括了 thread threading queue模块等 1 thread thread 模块由于thread主要面向底层技术 而且其相关技术存在缺陷 因此在python3 X版本里thread已经被废弃 只是通过 thread形式得到了保留 当然 读者可以调用 thread模块进行相关功能的使用 2 threading模块threading模块取代thread模块 并提供了更多的高级线程相关功能 13 2第一个多线程 抢火车票 13 3线程同步 13 3线程同步 CPython解释器上提供了全局解释器锁 GlobalInterpreterLock GIL 的原因 导致Cpython解释器的Python语言做不到正真的线程同步 只能模拟线程同步 多线程有两个应用方向 CPU bound 计算密集型 和I Obound I O密集型 计算密集型任务 CPU bound 主要通过多线程 充分利用CPU的资源 特别是多核计算资源 解决特定复杂计算问题 如复杂的科学计算算法 13 4线程队列模块 queue模块实现三种类型的队列 它们仅在检索元素的顺序上有所不同 在FIFO FirstInFirstOut 先进先出 队列中 添加的第一个元素是第一个检索的 在LIFO LastInFirstOut 后进先出 队列中 最近添加的元素是第一个检索到的 像堆栈一样操作 使用优先级队列 元素保持排序 使用heapq模块 并且首先检索最低值元素 13 5并发进程模块 在Python引入了多进程技术 是一种代替多线程技术的一项好的选择方案 multiprocessing是一个使用类似于线程模块的API来支持多进程的软件包 多处理包提供本地和远程并发 通过使用子进程而不是线程有效地避开全局解释器锁 由于这个原因 多处理模块允许程序员充分利用给定机器上的多个处理器 它可以在Unix和Windows上运行 13 5并发进程模块 13 6其他同步方法 不同编程语言有不同编程语言的应用优势 显然Python在多线程编程方面存在一些缺陷 如果纯粹为了解决多线程编程和应用问题 读者也可以选择其他功能更加强大的编程语言

温馨提示

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

评论

0/150

提交评论