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

相关推荐
Monkey的自我迭代1 分钟前
实战项目数据桥agent复盘
数据库·python·oracle
空空潍7 分钟前
Python核心基础语法
开发语言·python
历程里程碑16 分钟前
子串-----和为 K 的子数组
java·数据结构·c++·python·算法·leetcode·tornado
BYSJMG27 分钟前
Python毕业设计选题推荐:基于大数据的美食数据分析与可视化系统实战
大数据·vue.js·后端·python·数据分析·课程设计·美食
草原上唱山歌31 分钟前
C++如何调用Python代码
开发语言·c++·python
小鸡吃米…33 分钟前
机器学习 - 贝叶斯定理
人工智能·python·机器学习
紫竹苑主34 分钟前
VS Cose + PlatformIO +ESP32-S3 + ESPIDF开发环境安装卡壳持续等待问题解决
vscode·python·嵌入式硬件·物联网·硬件架构
Java后端的Ai之路35 分钟前
【Python教程11】-文件
开发语言·python
2301_822375441 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python