pytest - 多线程提速

python 复制代码
import time

def test1_test1():
    time.sleep(1)

    assert 1 == 1, "1==1"


def test1_test2():
    time.sleep(1)

    assert 1 == 1, "1==1"

上面2个函数,执行情况:

  • 正常执行时,花费 2.08s
  • 2个进程执行时,花费 1.18s
  • 2个线程执行时,花费 1.15s

问题:python有GIL(全局解释器锁),同一时刻只能执行一条线程的字节码指令,那么为什么pytest执行用例时,多线程会加快执行速度?

暂时得到的答案:time sleep 属于IO bound的任务。在IO bound的时候切换CPU去执行其他的字节码

相关推荐
Wang ruoxi1 小时前
Pygame 小游戏——贪吃蛇
python·pygame
大数据魔法师5 小时前
Streamlit(二十三)- 教程(二)- 动态导航
python·web
心中有国也有家8 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
卷毛的技术笔记9 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥9 小时前
匿名函数 lambda + 高阶函数
java·python·算法
vb2008119 小时前
FastAPI APIRouter
开发语言·python
adrninistrat0r10 小时前
Java调用链MCP分析工具
java·python·ai编程
杨充10 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法
meilindehuzi_a11 小时前
深入浅出数据结构:Python 字典(Dict)与集合(Set)的哈希表底层全链路追踪
数据结构·python·散列表
Lucas凉皮11 小时前
20243408 2025-2026-2 《Python程序设计》综合实践报告
python·实验报告