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_865439634 分钟前
CSS如何实现图片自动裁剪填充_巧用object-fit属性控制尺寸
jvm·数据库·python
m0_748839498 分钟前
HTML函数能否用液态金属散热提升性能_极端散热方案实测【汇总】
jvm·数据库·python
2301_803538959 分钟前
mysql添加索引导致插入变慢怎么办_索引优化与异步处理方案
jvm·数据库·python
该醒醒了~9 分钟前
深度学习异常检测Anomalib算法训练+推理+转化+onnx
人工智能·python·深度学习
2301_7826591810 分钟前
如何防止SQL脏数据写入_利用触发器实现强一致性校验
jvm·数据库·python
2301_8176722613 分钟前
如何实现元素从底部进入视口时触发 sticky 定位
jvm·数据库·python
日光明媚14 分钟前
FFmpeg 视频生成推理 Pipeline:Python 版常用函数封装(可直接集成)
python·深度学习·ai作画·aigc·音视频
小毛驴85015 分钟前
多线程同步打标记的几种实现方案
java·开发语言·python
bluebonnet2717 分钟前
【Python】一些PEP提案(五):注解的延迟求值
开发语言·python
InfinteJustice19 分钟前
mysql如何排查插件加载失败原因_mysql plugin目录与权限核对
jvm·数据库·python