课程内容与大纲
熟悉编程的,都知道调用API有同步和异步之分。常用的库也分别提供同步和异步的版本,比如gRPC库,网络IO库,文件IO库。
同步是指执行第一个任务(比如调用一个API读写文件),如果阻塞了,会一直等待,直到这个任务完成,再执行第二个任务,顺序执行。异步是指在处理调用这个任务的之后,不会等待这个任务的处理结果,立即返回处理第二个、第三个、第n个任务去了。这些任务的最终处理结果是通过状态、通知、回调来通知调用者的。同步简单,异步高效。
Python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病。然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率,弥补了python性能方面的短板
asyncio是python3.4版本引入到标准库,python3.5又加入了async/await特性。目前python异步相关的主流技术是通过包含关键字async&await的async模块实现,具有同步编程的方便性
同步/异步的概念
异步编程:async协程
async与await
任务task
同步与异步效率对比
async with和async for
http异步库:aiohttp
aiohttp(2):异步下载批量URL
周哥简介
周哥:男,真名周扬荣,毕业于中科院软件所。曾就职于阿里巴巴,奇虎360安全公司,SUN中国工程研究院,北大计算机研究所等,创办了“麦洛科菲”高端IT安全培训 。
课程勘误
如您在学习过程中发现任何“错误”,请联系并告知我们错误所在的课程名称和错误所在视频的时间起始位置。错误一经我们确认,我们将会在该门课程的“课程概述”里提供“错误更正”信息,并对您表示衷心的感谢。