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

相关推荐
SelectDB技术团队3 小时前
StarRocks 适合做日志分析吗?
大数据·数据结构·后端·python·doris·日志分析·starrock
weixin_307779133 小时前
Databricks里用PySpark统计指定表和字段中各字段的空值、空字符串或零值比例
运维·数据仓库·python·spark·云计算
海兰3 小时前
【 Python 量化交易】第6章:数据可视化
开发语言·python·信息可视化
多多鼠3 小时前
Tool Calling的信任边界:从协议校验到执行沙箱的完整链路设计
运维·开发语言·网络·人工智能·python·langchain
Jazz_z3 小时前
使用 Python 合并与取消合并 Excel 单元格
开发语言·python·excel
Lenyiin3 小时前
第6篇_Python高级语法与标准库精髓:从会用到达精通
java·python·html
ZGG0033 小时前
真题拆解 05:ReAct 还是 Plan-and-Execute——规划范式怎么选
python·agent·react
quantdash_cc4 小时前
量化数据管道为什么会出现历史 K 线缺口?从 API 请求到数据质量的完整排查方法
开发语言·python·数据分析·量化·股票数据·quantdash
用户77833661321119 小时前
用 React Hook 封装搜索数据:useSerp 的防抖、缓存与错误处理
python·api