python的一些常用技术(二)
三、python多线程
由于全局解释器锁 (GIL) 的存在,标准的 CPython 解释器并不支持真正的并行执行 Python 字节码。GIL 限制了在任何时刻只有一个线程可以执行 Python 字节码,这意味着多线程在 CPU 密集型任务中无法充分利用多核 CPU 的优势。但对于 I/O 密集型任务(例如网络操作、文件 I/O),多线程仍然是有效的并发处理方式,因为在这些操作等待完成时,GIL 会释放,让其他线程继续执行。
四、python异步:python 的异步编程是一种并发编程方式,旨在在 I/O 密集型任务(如网络请求、文件 I/O 等)中提高性能和效率。Python 中主要使用 asyncio
库来实现异步编程。
1、异步编程相关的一些库:
- asyncio:Python 标准库,提供了异步 I/O、事件循环、协程和任务等功能。
- aiohttp:用于异步 HTTP 请求的库。
- aiomysql:用于异步 MySQL 数据库操作的库。
- aioredis:用于异步 Redis 操作的库。
2、关键概念:
- 事件循环:驱动异步程序的核心。事件循环等待事件(如 I/O 操作完成),并将事件分派给相应的协程处理。
- 协程:使用
async def
定义的函数,可以在需要时暂停执行,并在将来某个时刻恢复执行。 - 任务:对协程的封装,使其能够在事件循环中执行。
- Future:表示异步操作的最终结果或失败。