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实现Const详解
Jan 27 Python
python通过socket查询whois的方法
Jul 18 Python
简述Python中的进程、线程、协程
Mar 18 Python
Python找出list中最常出现元素的方法
Jun 14 Python
Python面向对象编程之继承与多态详解
Jan 16 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
python编程进阶之类和对象用法实例分析
Feb 21 Python
python中JWT用户认证的实现
May 18 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
Python爬虫代理池搭建的方法步骤
Sep 28 Python
基于Python的EasyGUI学习实践
May 07 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代码
2008/09/10 PHP
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
php 分库分表hash算法
2009/11/12 PHP
smarty简单应用实例
2015/11/03 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
Vue配置marked链接添加target="_blank"的方法
2019/07/19 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Python 将pdf转成图片的方法
2018/04/23 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
Opencv求取连通区域重心实例
2020/06/04 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
旅游管理毕业生自荐信
2013/11/05 职场文书
xxx同志考察材料
2014/02/07 职场文书
项目经理任命书
2014/06/04 职场文书
降价通知函
2015/04/23 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python