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、关键概念:

  1. 事件循环:驱动异步程序的核心。事件循环等待事件(如 I/O 操作完成),并将事件分派给相应的协程处理。
  2. 协程:使用 async def 定义的函数,可以在需要时暂停执行,并在将来某个时刻恢复执行。
  3. 任务:对协程的封装,使其能够在事件循环中执行。
  4. Future:表示异步操作的最终结果或失败。
posted @ 2024-07-17 23:56  jpx  阅读(92)  评论(0编辑  收藏  举报