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

相关推荐
LiAo_1996_Y几秒前
p标签能嵌套div吗_HTML块级元素嵌套规则【解答】
jvm·数据库·python
2301_816660212 分钟前
c++怎么将纯C的FILE-升级为C++的fstream_流缓冲绑定技巧【详解】
jvm·数据库·python
码界筑梦坊3 分钟前
89-基于Django的加利福尼亚州各县死亡概况分析系统
数据库·python·信息可视化·数据分析·django·毕业设计
m0_514520574 分钟前
CSS如何实现输入框提示文字的浮动动画_利用transform translateY上移
jvm·数据库·python
yejqvow125 分钟前
php怎么调用字节跳动AI商品推荐_php如何基于用户行为生成千人千面
jvm·数据库·python
坐吃山猪7 分钟前
MFlow03-数据模型解析
开发语言·python·源码·agent·记忆
weixin_5689960612 分钟前
HTML怎么离线使用_HTML缓存策略基础配置【教程】
jvm·数据库·python
Ulyanov13 分钟前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio动画与动效系统深度解析
开发语言·python·qt·系统仿真·雷达电子对抗仿真
2301_7735536216 分钟前
怎么删除MongoDB中不再使用的账号
jvm·数据库·python
qq_3422958217 分钟前
SQL报表星型模型优化_事实表索引设计
jvm·数据库·python