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

相关推荐
竹林818几秒前
用Python requests搞定Cookie登录,我绕过了三个大坑才成功
爬虫·python·自动化运维
MIXLLRED21 分钟前
Python模块详解(一)—— socket 和 threading 模块
开发语言·python·socket·threading
Jay-r29 分钟前
OpenClaw养龙虾工具安全风险分析:五大隐患及防护建议引言
网络·python·安全·web安全·ai助手·openclaw
C蔡博士1 小时前
最近点对问题(Closest Pair of Points)
java·python·算法
APIshop1 小时前
Java调用亚马逊商品详情API接口完全指南
java·开发语言·python
nimadan122 小时前
**豆包seed写剧本2025指南,AI编剧工具实战应用解析**
人工智能·python
沉下去,苦磨练!2 小时前
python的if __name__ == ‘__main__‘
python
killer Curry2 小时前
Polar CTF PWN 简单(1)(持续更新)
笔记·python·算法
DeepModel2 小时前
【概率分布】卡方分布的原理、推导与实战应用
python·算法·概率论
6+h2 小时前
【java】System类详解
java·开发语言·python