Python中threading模块join函数用法实例分析


Posted in Python onJune 04, 2015

本文实例讲述了Python中threading模块join函数用法。分享给大家供大家参考。具体分析如下:

join的作用是众所周知的,阻塞进程直到线程执行完毕。通用的做法是我们启动一批线程,最后join这些线程结束,例如:

for i in range(10):
 t = ThreadTest(i)
 thread_arr.append(t)

for i in range(10):
 thread_arr[i].start()

for i in range(10):
 thread_arr[i].join()

此处join的原理就是依次检验线程池中的线程是否结束,没有结束就阻塞直到线程结束,如果结束则跳转执行下一个线程的join函数。

而py的join函数还有一个特殊的功能就是可以设置超时,如下:

Thread.join([timeout])

Wait until the thread terminates. This blocks the calling thread until the thread whose join() method is called terminates ? either normally or through an unhandled exception ? or until the optional timeout occurs.
 
也就是通过传给join一个参数来设置超时,也就是超过指定时间join就不在阻塞进程。而在实际应用测试的时候发现并不是所有的线程在超时时间内都结束的,而是顺序执行检验是否在time_out时间内超时,例如,超时时间设置成2s,前面一个线程在没有完成的情况下,后面线程执行join会从上一个线程结束时间起再设置2s的超时。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
使用python实现baidu hi自动登录的代码
Feb 10 Python
Python3基础之list列表实例解析
Aug 13 Python
python对字典进行排序实例
Sep 25 Python
python使用Berkeley DB数据库实例
Sep 26 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
Django使用Jinja2模板引擎的示例代码
Aug 09 Python
python3.6编写的单元测试示例
Aug 17 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
Python实现敏感词过滤的4种方法
Sep 12 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
Python爬虫之爬取二手房信息
Apr 27 Python
pandas中DataFrame检测重复值的实现
May 26 Python
django通过ajax发起请求返回JSON格式数据的方法
Jun 04 #Python
python创建进程fork用法
Jun 04 #Python
Python文件及目录操作实例详解
Jun 04 #Python
Python通过poll实现异步IO的方法
Jun 04 #Python
Python通过select实现异步IO的方法
Jun 04 #Python
Python守护进程用法实例分析
Jun 04 #Python
Python使用multiprocessing创建进程的方法
Jun 04 #Python
You might like
PHP unset函数原理及使用方法解析
2020/08/14 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
Python3.2中的字符串函数学习总结
2015/04/23 Python
tensorflow获取变量维度信息
2018/03/10 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
css3的过滤效果简单实例
2016/08/03 HTML / CSS
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
佳能英国官方网站:Canon UK
2017/08/08 全球购物
J2EE包括哪些技术
2016/11/25 面试题
廉政教育心得体会
2014/01/01 职场文书
打架检讨书100字
2014/01/19 职场文书
参观考察邀请函范文
2014/01/29 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
运动会通讯稿600字
2015/07/20 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers