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

相关推荐
2401_8971905513 分钟前
Golang怎么写TODO待办应用_Golang TODO应用教程【深入】
jvm·数据库·python
m0_6784854519 分钟前
CSS实现浮动图标与文本居中对齐_配合浮动与flex
jvm·数据库·python
YuanDaima204820 分钟前
二分查找基础原理与题目说明
开发语言·数据结构·人工智能·笔记·python·算法
2401_8877245026 分钟前
uni-app动画效果实现 uni-app如何使用animation API
jvm·数据库·python
Luca_kill27 分钟前
实战指南:用 Python + NLP 搭建一套轻量级 AI 舆情监控系统
人工智能·python·机器学习·nlp·舆情监控
七颗糖很甜28 分钟前
python实现全国雷达拼图数据的SCIT风暴识别
python·算法·scipy
m0_7488394928 分钟前
mysql如何处理不走索引的OR查询_使用UNION ALL优化重写
jvm·数据库·python
Dxy123931021632 分钟前
将 PyTorch Tensor 转换为 Python 列表
人工智能·pytorch·python
2401_8877245042 分钟前
在 Ubuntu Core 上部署 Go Web 服务的完整实践指南
jvm·数据库·python
Polar__Star1 小时前
C#怎么实现Redis分布式缓存 C#如何在ASP.NET Core中集成Redis实现分布式缓存方案【架构】
jvm·数据库·python