未加密-并发班tuple老师greenlet与gevent08gevent_第1页
未加密-并发班tuple老师greenlet与gevent08gevent_第2页
未加密-并发班tuple老师greenlet与gevent08gevent_第3页
未加密-并发班tuple老师greenlet与gevent08gevent_第4页
未加密-并发班tuple老师greenlet与gevent08gevent_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、Python并发课教室讲师:Tuple时间:2018年1月教学监督热线 教学监督热线 010203阶段一: 协程阶段二: greenlet 协程 阶段三: gevent 协程本节知识点阶段一协程教学监督热线 协程 问题引入01020304问题一: 生成器与函数的区别?问题二: 协程与生成器的区别? 问题三: 协程算并发嘛?问题四: 协程的意义?预留如果我们考虑的是,同时服务多个客户端,那么他不算!如果某一个协程被网络阻塞了,那么整个线程(进程)都被阻塞。协程本身不能避开阻塞。 任意时刻,只有一个协程在执行。从执行单元上来看,它的确属于并发。阶段二greenlet教学监督热线 greenlet

2、问题引入010203问题一: 什么是greenlet ?问题二: 如何使用 greenlet ?问题三: 为什么需要greenlet ?什么是 greenlet ?虽然CPython(标准Python)能够通过生成器来实现协程, 但使用起来还并不是很方便。与此同时,Python的一个衍生版 Stackless Python 实现了原生的协程,它更利于使用。于是,大家开始将 Stackless 中关于协程的代码 单独拿出来做成了CPython的扩展包。这就是 greenlet 的由来,因此 greenlet 是底层实现了原生协程的 C扩展库。sudo pip3 install greenletg

3、reenlet 的基本使用greenlet 的价值价值一: 高性能的原生协程价值二: 语义更加明确的显式切换价值三: 直接将函数包装成协程,保持原有代码风格阶段三gevent协程教学监督热线 gevent 问题引入010203问题一: 什么是 gevent ?问题二: gevent 的价值是什么 ?问题三: 如何使用 gevent ?什么是 gevent?sudo pip3 install gevent虽然,我们有了 基于 epoll 的回调式编程模式,但是却难以使用。即使我们可以通过配合 生成器协程 进行复杂的封装,以简化编程难度。但是仍然有一个大的问题: 封装难度大,现有代码几乎完全要重写

4、gevent,通过封装了 libev(基于epoll) 和 greenlet 两个库。帮我们做好封装,允许我们以类似于线程的方式使用协程。以至于我们几乎不用重写原来的代码就能充分利用 epoll 和 协程 威力。gevent 的价值价值一: 使用基于 epoll 的 libev 来避开阻塞价值二: 使用基于 gevent 的 高效协程 来切换执行遇到阻塞就切换到 另一个协程继续执行 !价值三: 只在遇到阻塞的时候切换, 没有轮需的开销,也没有线程的开销gevent 并发服务器阶段四gevent 协程通信教学监督热线 gevent通信 问题引入0102问题一: 协程之间不是能通过switch通信嘛?问题二: 那为什么还要考虑通信问题?是的,由于 gevent 基于 greenlet,所以可以。因为 gevent 不需要我们使用手动切换,而是遇到阻塞就切换,因此我们不会去使用swit

温馨提示

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

评论

0/150

提交评论