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

相关推荐
开发转测试3 分钟前
python编码笔试题
python
祝余Eleanor9 分钟前
Day37 模型可视化与推理
人工智能·python·深度学习
sg_knight10 分钟前
Python 面向对象基础复习
开发语言·python·ai编程·面向对象·模型
dhdjjsjs36 分钟前
Day35 PythonStudy
python
如竟没有火炬1 小时前
四数相加贰——哈希表
数据结构·python·算法·leetcode·散列表
背心2块钱包邮1 小时前
第9节——部分分式积分(Partial Fraction Decomposition)
人工智能·python·算法·机器学习·matplotlib
木盏1 小时前
三维高斯的分裂
开发语言·python
a程序小傲1 小时前
京东Java面试被问:ZGC的染色指针如何实现?内存屏障如何处理?
java·后端·python·面试
大连好光景2 小时前
批量匿名数据重识别(debug记录)
开发语言·python
暴风鱼划水2 小时前
算法题(Python)哈希表 | 2.两个数组的交集
python·算法·哈希表