专题文章
时长:00:00更新时间:2020-11-27 14:22:54
阻塞型I/O和GIL。CPython 解释器本身就不是线程安全的,因此有全局解释器锁(GIL),一次只允许使用一个线程执行 Python 字节码。因此,一个 Python 进程通常不能同时使用多个 CPU 核心。然而,标准库中所有执行阻塞型 I/O 操作的函数,在等待操作系统返回结果时都会释放GIL。这意味着在 Python 语言这个层次上可以使用多线程,而 I/O 密集型 Python 程序能从中受益:一个 Python 线程等待网络响应时,阻塞型 I/O 函数会释放 GIL,再运行一个线程。asyncio;这个包使用事件循环驱动的协程实现并发。asyncio 大量使用 yield from 表达式,因此与Python 旧版不兼容。
查看详情