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 相关文章推荐
tornado框架blog模块分析与使用
Nov 21 Python
python中ConfigParse模块的用法
Sep 29 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
用Python实现一个简单的能够上传下载的HTTP服务器
May 05 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 Python
matplotlib绘图实例演示标记路径
Jan 23 Python
python 输出所有大小写字母的方法
Jan 02 Python
简单了解python中对象的取反运算符
Jul 01 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 Python
如何验证python安装成功
Jul 06 Python
C站最全Python标准库总结,你想要的都在这里
Jul 03 Python
Python函数对象与闭包函数
Apr 13 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
一个简单的js树形菜单
2011/12/09 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
python实现文件路径和url相互转换的方法
2015/07/06 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
科室工作的个人自我评价
2013/10/30 职场文书
党校培训思想汇报
2014/01/03 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android