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

相关推荐
阿贵---7 分钟前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
无敌昊哥战神11 分钟前
【LeetCode 257】二叉树的所有路径(回溯法/深度优先遍历)- Python/C/C++详细题解
c语言·c++·python·leetcode·深度优先
李昊哲小课2 小时前
第1章-PySide6 基础认知与环境配置
python·pyqt·pyside
2401_894241922 小时前
用Pygame开发你的第一个小游戏
jvm·数据库·python
Zzzz_my3 小时前
正则表达式(RE)
pytorch·python·正则表达式
天天鸭4 小时前
前端仔写了个 AI Agent,才发现大模型只干了 10% 的活
前端·python·ai编程
setmoon2144 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
2401_833197735 小时前
为你的Python脚本添加图形界面(GUI)
jvm·数据库·python
敏编程6 小时前
一天一个Python库:tomlkit - 轻松解析和操作TOML配置
python
2401_879693876 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python