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

相关推荐
m0_60916049几秒前
mysql表锁监控命令_诊断MyISAM表锁定问题的方法
jvm·数据库·python
iuvtsrt几秒前
PHP 中使用 GnuPG 实现 PGP 加密与解密的完整实践指南
jvm·数据库·python
dFObBIMmai几秒前
如何用 click 与 mousedown 区分鼠标点击与按下的触发顺序
jvm·数据库·python
zh1570231 分钟前
MongoDB备节点无法读取数据怎么解决_rs.slaveOk()与Secondary读取权限
jvm·数据库·python
云天AI实战派2 分钟前
Python 智能体实战:从 0 搭建模块化 Agent 路由系统,落地小龙虾门店运营助手
开发语言·人工智能·python
H_unique2 分钟前
Trae实现Web UI自动化测试
python·ui·ai编程·trae
小白学大数据2 分钟前
新闻爬虫开发实战:Python 搞定新闻网站关键词文章抓取
开发语言·爬虫·python·自动化
m0_733565462 分钟前
怎么对MongoDB数据进行批量部分更新_BulkWrite机制与性能优化
jvm·数据库·python
m0_463672206 分钟前
如何理解闭包对内存的影响并手动解除引用防止泄漏
jvm·数据库·python