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 自动去除空行的实例
Jul 24 Python
python将秒数转化为时间格式的实例
Sep 16 Python
Python实现八皇后问题示例代码
Dec 09 Python
python正则表达式匹配[]中间为任意字符的实例
Dec 25 Python
Python3按一定数据位数格式处理bin文件的方法
Jan 24 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
对python tkinter窗口弹出置顶的方法详解
Jun 14 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
Oct 27 Python
python中 Flask Web 表单的使用方法
May 20 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安全配置详细说明
2011/09/26 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
php事件驱动化设计详解
2016/11/10 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
Vue页面骨架屏注入方法
2018/05/13 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
python PyTorch参数初始化和Finetune
2018/02/11 Python
Numpy数组的保存与读取方法
2018/04/04 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
Python 获取div标签中的文字实例
2018/12/20 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
django自带调试服务器的使用详解
2019/08/29 Python
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
完美主义个人的自我评价
2014/02/17 职场文书
事务机电主管工作职责
2014/02/25 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
个人培训总结
2015/03/05 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫