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 小时前
Selenium自动化测试详解1
python·selenium·测试工具·ui
Liu628886 小时前
Web开发与API
jvm·数据库·python
观书喜夜长6 小时前
大模型应用开发学习-基于langchain框架做一个个人文档问答助手
python·学习·idea
m0_743470376 小时前
Python字典与集合:高效数据管理的艺术
jvm·数据库·python
2501_945423546 小时前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
2401_851272996 小时前
使用Python进行量化交易入门
jvm·数据库·python
93_Ryan6 小时前
企业级混合智能体核心引擎架构设计
人工智能·python
故城、6 小时前
Python进阶
开发语言·python
Mr数据杨6 小时前
【Dv3Admin】Django一键配置权限规则
python·django·sqlite