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

相关推荐
写bug如流水21 分钟前
【Python】Python闭包的妙用与注意事项
开发语言·python·spring
神即道 道法自然 如来24 分钟前
测试面试题:pytest断言时,数据是符点类型,如何断言?
pytest
MavenTalk1 小时前
经典Python应用库一览
开发语言·python·pycharm·requests
42fourtytoo2 小时前
SQL总结
数据库·python·sql·计算机网络·安全·网络安全
MavenTalk2 小时前
Python中流行的开源OCR项目
开发语言·python·ocr
coffee_baby2 小时前
《 Spring Boot实战:优雅构建责任链模式投诉处理业务》
spring boot·python·设计模式·责任链模式
Envyᥫᩣ2 小时前
Python中的机器学习:从入门到实战
python·前端框架
西贝爱学习2 小时前
py 元组,列表,函数的学习和使用
python
weijie.zwj3 小时前
LLM基础概念:Prompt
人工智能·python·langchain