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去执行其他的字节码

相关推荐
Java后端的Ai之路14 分钟前
07React_Props验证器
人工智能·python·react.js·架构·fastapi
Eider199817 分钟前
为Loop Engineering装刹车
python·vibe coding·agent设计模式·loopengineering
kaixin_啊啊31 分钟前
【零基础学AI】第 9 章——安装 Python 和开发工具
人工智能·python
雨滴AI自动化测试44 分钟前
想让你的自动化测试接入AI,这一步必须要有。
python
用户7624117567051 小时前
第八章 异常处理及程序调试
python
源图客1 小时前
Python环境安装与PyCharm的第一个项目
开发语言·python·pycharm
朝朝辞暮i1 小时前
VLA 系统学习第 20 课——Diffusion Policy 为什么要先给动作加噪,再学习把噪声去掉?
人工智能·python·深度学习·transformer·vla
郝学胜_神的一滴1 小时前
Numpy数据处理详解 02:玩转高性能数组,告别低效循环
人工智能·python
全栈弄潮儿1 小时前
Python实战第3期:输入输出与字符串操作
python·agent
goehou2 小时前
MCP 传输方式实战:stdio、Streamable HTTP、WebSocket 该选哪个
python·llm·agent·教程·mcp