python多线程并发及测试框架案例


Posted in Python onOctober 15, 2019

这篇文章主要介绍了python多线程并发及测试框架案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1、循环创建多个线程,并通过循环启动执行

import threading
from datetime import *
from time import sleep

# 单线程执行
def test():
 print('hello world')

t = threading.Thread(target=test)
t.start()

# 多线程执行
def test_01():
 sleep(1)
 x = 0
 while x == 0:  # 设置一个死循环
  print(datetime.now())    # 获取当前系统时间

def looptest():
 '''
 循环20次执行 test_o1()函数
 :return:
 '''
 for i in range(20):
  test_01()

def thd():
 '''
 创建并执行多个线程
 需求:并发执行50次 test_o1()函数
 说明:把50的并发拆成25个线程组,每个线程再循环20次执行 test_o1()函数,这样在启动下一个线程的时候,
 上一个线程已经在循环了,以此类推,当启动第25个线程的时候,可能已经执行了200次的t est_o1()函数,
 这样就可以大大减少并发的时间差异
 :return:
 '''
 Threads = []
 for i in range(25):
  th = threading.Thread(target=looptest)
  Threads.append(th)
  '''
  守护线程:主线程执行完毕之后,会等待子线程全部执行完毕,才会关闭结束程序
  必须加在start()之前,默认为 false
  '''
  th.setDaemon(True)
 for th in Threads:
  th.start()
 for th in Threads:
  '''
  阻塞线程:等主线程执行完毕之后再关闭所有子线程
  必须加在start()之后
  可以通过join()的timeout参数来完美解决相互等待的问题,子线程告诉主线程让其等待0.04秒,
  0.04秒之内子线程完成,主线程就继续往下执行,0.04秒之后如果子线程还未完成,主线程也会
  继续往下执行,执行完成之后关闭子线程
  '''
  th.join(0.04)

if __name__=="__main__":
 print('start')
 thd()
 print('end')

2、并发测试框架

# 并发测试框架
THREAD_NUM = 1
ONE_WORKER_NUM = 1
def test():
 pass   # 测试代码

def working():
 global ONE_WORKER_NUM
 for i in range(0, ONE_WORKER_NUM):
  test()
  
def t():
 global THREAD_NUM
 Threads = []
 for i in range(THREAD_NUM):
  t = threading.Thread(target=working,name='T'+str(i))
  t.setDaemon(True)
  Threads.append(t)
 for t in Threads:
  t.start()
 for t in Threads:
  t.join()
  
if __name__=="__main__":
 t()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python动态监控日志内容的示例
Feb 16 Python
Python脚本实现集群检测和管理功能
Mar 06 Python
举例详解Python中的split()函数的使用方法
Apr 07 Python
Python 迭代器与生成器实例详解
May 18 Python
深入理解Python中的super()方法
Nov 20 Python
Python xlwt设置excel单元格字体及格式
Apr 18 Python
纯python实现机器学习之kNN算法示例
Mar 01 Python
python+pandas+时间、日期以及时间序列处理方法
Jul 10 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
基于python requests selenium爬取excel vba过程解析
Aug 12 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 Python
浅析PEP570新语法: 只接受位置参数
Oct 15 #Python
浅析PEP572: 海象运算符
Oct 15 #Python
Python 导入文件过程图解
Oct 15 #Python
Python3.8对可迭代解包的改进及用法详解
Oct 15 #Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 #Python
Python3安装pip工具的详细步骤
Oct 14 #Python
python区分不同数据类型的方法
Oct 14 #Python
You might like
php之可变函数的实例详解
2017/09/13 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
js onclick事件传参讲解
2013/11/06 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
python分析apache访问日志脚本分享
2015/02/26 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
python创建和删除目录的方法
2015/04/29 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
python绘制漏斗图步骤详解
2019/03/04 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
大学生农村教师实习自我鉴定
2013/09/21 职场文书
竞聘书格式及范文
2014/03/31 职场文书
广播体操比赛口号
2014/06/10 职场文书
单位授权委托书范文
2014/08/02 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
python实现网络五子棋
2021/04/11 Python