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

相关推荐
Warson_L1 小时前
class 扩展
python
前端与小赵2 小时前
Python 数据结构陷阱与复数运算优化:列表、元组、字典成员操作辨析及 NumPy 高效实践
python
天天进步20152 小时前
Python全栈项目--基于深度学习的视频目标跟踪系统
python·深度学习·音视频
天天进步20152 小时前
Python全栈项目--Python自动化运维工具开发
运维·python·自动化
(●—●)橘子……2 小时前
力扣第503场周赛练习理解
python·学习·算法·leetcode·职场和发展·周赛
爱吃羊的老虎3 小时前
【JAVA】python转java:Spring Boot 入门
java·spring boot·python
小桥流水---人工智能3 小时前
【已解决】ImportError: cannot import name ‘AdamW‘ from ‘transformers.optimization‘
python
芝麻开门GEO3 小时前
泰安GEO优化服务,真的能提升效果吗?
人工智能·python
颜酱3 小时前
选读:工业级调用 LangChain:从 Demo 到企业级应用
python
颜酱4 小时前
LangChain 调用大模型实战:从跑通到服务商与模型选型
python·langchain