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

相关推荐
不会飞的鲨鱼14 小时前
观鸟网 RSA加密 AES 解密
javascript·爬虫·python
CHINA红旗下14 小时前
Claude的使用
python
梅羽落14 小时前
SpiderDemo第一关
python
风之所往_14 小时前
Python 3.1 新特性全面总结
python
贫民窟的勇敢爷们14 小时前
构建基于Python与机器学习的智能客服
开发语言·python·机器学习
shehuiyuelaiyuehao14 小时前
算法20,x的平方根
开发语言·python·算法
AI精钢14 小时前
AI 正在重构所有 App:要么消失,要么原生于智能体框架之上
人工智能·python·云原生·重构·aigc
测试员周周15 小时前
【AI测试数据及模型质量2】换一批测试数据,模型得分差20%——AI评测翻车的根子,90%在数据质量
人工智能·python·ui·单元测试·测试用例·集成测试·pytest
神仙别闹15 小时前
基于Python实现一个C语言的编译器
java·c语言·python
yivifu15 小时前
使用PyMuPDF基于对PDF文档内容的分析自动识别并删除PDF文件中的水印
python·pdf·pymupdf·去水印