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

yipeiwu_com6年前Python基础

本文实例讲述了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如何使用socketserver模块实现并发聊天

这篇文章主要介绍了python如何使用socketserver模块实现并发聊天,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 利用so...

浅谈python中统计计数的几种方法和Counter详解

1) 使用字典dict() 循环遍历出一个可迭代对象中的元素,如果字典没有该元素,那么就让该元素作为字典的键,并将该键赋值为1,如果存在就将该元素对应的值加1. lists = ['...

flask + pymysql操作Mysql数据库的实例

flask + pymysql操作Mysql数据库的实例

安装flask-sqlalchemy、pymysql模块 pip install flask-sqlalchemy pymysql ### Flask-SQLAlchemy的介绍...

Python实现确认字符串是否包含指定字符串的实例

有时候我们需要在某段字符串或者某段语句中去查找确认是否包含我们所需要的字符串信息, 举例子说、 某段变量是:A= ”My name is Clay, and you can get my...

python中的列表与元组的使用

在python中的数据类型和控制流这篇文章中我们提到过列表,它是基本的数据类型之一。 通俗来说,它就是用来存储一系列数据的。比如存储一个班级的学生。 列表中的每个元素可以通过下标(索引)...