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内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
深入理解Django的自定义过滤器
Oct 17 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
python logging日志模块以及多进程日志详解
Apr 18 Python
python实现雨滴下落到地面效果
Jun 21 Python
Django中的文件的上传的几种方式
Jul 23 Python
python MNIST手写识别数据调用API的方法
Aug 08 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
Mar 11 Python
python实现布隆过滤器及原理解析
Dec 08 Python
python多线程使用方法实例详解
Dec 30 Python
PyCharm第一次安装及使用教程
Jan 08 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 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
1 Tube Radio
2021/03/02 无线电
PHP is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
php mysql 封装类实例代码
2016/09/18 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
Laravel 5.5 异常处理 & 错误日志的解决
2019/10/17 PHP
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
在Python中使用第三方模块的教程
2015/04/27 Python
Saltstack快速入门简单汇总
2016/03/01 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
python实现数字炸弹游戏程序
2020/07/17 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
英文简历自荐信范文
2013/12/11 职场文书
小饰品店的创业计划书范文
2013/12/28 职场文书
生物学专业求职信
2014/07/23 职场文书
家属答谢词
2015/01/05 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
员工考勤管理制度
2015/08/06 职场文书
初中地理教学反思
2016/02/19 职场文书