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

相关推荐
Ares-Wang几秒前
Flask》》flask-login
后端·python·flask
wangjialelele8 分钟前
从零入门 LangChain:Python 语法详解 + 工具开发 + 结构化输出实战
开发语言·人工智能·python·语言模型·langchain
配奇8 分钟前
神经网络基础
人工智能·python·深度学习·神经网络
2501_9142459311 分钟前
SQL如何统计分组内满足条件的唯一项_COUNT与DISTINCT
jvm·数据库·python
qq_1898070318 分钟前
C#怎么操作数据库存储过程 C#如何调用SQL Server存储过程传参并获取返回结果【数据库】
jvm·数据库·python
高洁0119 分钟前
AI模型部署进阶:Docker容器化部署AI项目
人工智能·python·深度学习·数据挖掘·知识图谱
itzixiao22 分钟前
L1-049 天梯赛座位分配(20 分)[java][python][c]
java·开发语言·python
m0_7467523022 分钟前
HTML5视频标签针对不同设备DPR的资源选择逻辑
jvm·数据库·python
2301_7735536222 分钟前
c++怎么在Linux下获取文件被最后一次访问的精确纳秒时间【进阶】
jvm·数据库·python
gmaajt27 分钟前
CSS如何给按钮添加按下缩小的动画_利用-active配合transform
jvm·数据库·python