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

相关推荐
宁大小白5 分钟前
pythonstudy Day45
开发语言·python·深度学习
AI手记叨叨40 分钟前
Python数学:统计运算
python·数学·统计运算·描述统计·概率运算
Brian Xia1 小时前
从0开始手写AI Agent框架:nano-agentscope(一)项目介绍
人工智能·python·ai
电商API&Tina1 小时前
【电商API接口】多电商平台数据API接入方案(附带实例)
运维·开发语言·数据库·chrome·爬虫·python·jenkins
ZPC82101 小时前
FANUC 机器人 PR 寄存器
人工智能·python·算法·机器人
秃了也弱了。1 小时前
python实现语音识别:SpeechRecognition库
python
yaoxin5211231 小时前
278. Java Stream API - 限制与跳过操作全解析
java·开发语言·python
love530love1 小时前
【探讨】“父级/基环境损坏,子环境全部失效”,如何避免 .venv 受父级 Python 损坏影响?
java·开发语言·人工智能·windows·python·编程·ai编程
BoBoZz192 小时前
FlatVersusGouraud 对比平面着色和高洛德着色
python·vtk·图形渲染·图形处理
智航GIS2 小时前
7.1 自定义函数
前端·javascript·python