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

相关推荐
迷迭香yy7 分钟前
Python实战:涨停板“假封板”识别系统的工程实现
开发语言·人工智能·python
aqi0026 分钟前
15天学会AI应用开发(二十)使用LangChain实现RAG检索功能
人工智能·python·ai编程
本地化文档38 分钟前
skbuild-docs-l10n
python·github·gitcode·sphinx
事缓则圆1 小时前
从零推导 Python 装饰器:不用背语法,看完这篇就懂了
python
鬼手点金1 小时前
Hermes‑Agent 使用教程
python·ubuntu·powershell·cmd·ai agent·opencode·hermes
Gu Gu Study1 小时前
【agent认知】宏观Agent的基本两层架构(Agent Loop与Agent Harness)
python·架构
从小就看凹凸曼^o^1 小时前
Python基础3 - 流程控制语句:(1)程序结构
python
小陈的进阶之路1 小时前
爬虫三大解析库:lxml, jsonpath, bs4
开发语言·笔记·python
满怀冰雪2 小时前
17-正则化方法:Dropout、权重衰减与过拟合控制
人工智能·python·深度学习·机器学习·paddlepaddle