并发/并行
并发:一个 CPU 同时处理多个程序,但是在同一时间点只会处理其中一个
并行:多个 CPU 同时处理多个程序,同一时间点可以处理多个
同步/异步
同步:执行 IO 操作时,必须等待执行完成才得到返回结果
异步:执行 IO 操作时,不必等待执行就能得到返回结果
协程(Co-routine)
可称为微线程,或非抢占式的多任务子例程,一种用户态的上下文切换技术(通过一个线程实现代码块间的相互切换执行)
asyncio
asyncio是Python中内置的异步编程库,它通过使用协程来实现并发和异步操作
asyncio使用async和await关键字来定义协程函数和进行协程的挂起和恢复
asyncio 中,协程函数被封装在一个特殊的事件循环(event loop)中,通过事件循环的调度来实现协程的执行
asyncio 提供了一系列的异步操作和工具,例如异步 I/O、定时器、任务队列等,以支持并发和异步编程、
async/await的使用
async 用来声明一个函数为异步函数,异步函数的特点是能在函数执行过程中挂起,去执行其他异步函数
await + 可等待对象(协程对象,Future,Task对象(IO等待)),等待到对象的返回结果,才会继续执行后续代码
output: