1. 同步、异步的区别
1.1. 同步(Synchronous)
指发送一个请求,需要等待返回,然后才能够发送下一个请求,有等待过程。
1.2. 异步(Asynchronous)
指发送一个请求,不需要等待返回,随时可以再发发下一个请求。
异步编程允许程序在等待某些操作(I/O操作)时执行其他操作,从而提高了程序的执行效率的响应速度。
2. 进程、线程、协程的区别
2.1. 进程
操作系统中最小的执行单位,每个进程有自己独立的内存空间和系统资源。
2.2. 线程
进程内的执行流,共享进程的内存空间和系统资源。
2.3. 协程(Coroutine)
是异步编程的基本单位,更为轻量级。协程能在一个线程中高效地管理和调度任务,使得在等待某些操作(如 I/O 操作)时,可以执行其他任务。协程更为灵活,能够在多个入口和退出点之间切换执行流。
3. python 中异步涉及的关键词
-
async
声明异步函数 async def function_name(): 表示定义一个异步函数。 -
await
在协程中等待另一个可等待对象(另一个协程,任务等),暂停当前协程的执行直至被等待的对象完成。
4. 异步的应用场景
异步编程主要适用于 I/O 密集型任务,例如网络请求,文件读写和数据库操作等。
5. 异步示例
import asyncio
# 定义协程函数
async def coro_func():
print("hello,asyncio!")
# 定义主协程
async def main():
print("in the entrypoint coroutine.")
await coro_func() #等待协程函数完成
# 运行主函数
if __name__ == '__main__':
asyncio.run(main())