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

相关推荐
w***4816 分钟前
Python中的简单爬虫
爬虫·python·信息可视化
z***56561 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
测试界萧萧1 小时前
Jenkins+Allure+Pytest的持续集成
自动化测试·软件测试·功能测试·程序人生·ci/cd·jenkins·pytest
voidmort1 小时前
web3.py 简介:面向 Python 开发者的以太坊
开发语言·python·web3.py
后台开发者Ethan1 小时前
LangGraph 的持久化
python·langgraph
油炸小波2 小时前
02-AI应用开发平台Dify
人工智能·python·dify·coze
SunnyDays10113 小时前
从图片到PPT:用Python实现多图片格式(PNG/JPG/SVG)到幻灯片的批量转换
python·图片转ppt·png转ppt·jpg转ppt·svg转ppt·添加图片到ppt
CodeCraft Studio3 小时前
Excel处理控件Aspose.Cells教程:使用Python从Excel工作表中删除数据透视表
开发语言·python·excel·aspose·aspose.cells·数据透视表
普通网友3 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python
linuxxx1103 小时前
高考志愿填报辅助系统
redis·后端·python·mysql·ai·django·高考