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

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

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

  ?

1
2
3
4
5
6
7
8
9

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程序设计有所帮助。

时间: 2025-01-12 13:14:54

Python中threading模块join函数用法实例分析的相关文章

详解Python中threading模块的几个常用方法

  这篇文章主要介绍了举例详解Python中threading模块的几个常用方法,threading模块用来创建和操作线程,是Python学习当中的重要知识,需要的朋友可以参考下 threading.Thread Thread 是threading模块中最重要的类之一,可以使用它来创建线程.有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另一种是创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入.下面分别举例说明.

js常用系统函数用法实例分析

 这篇文章主要介绍了js常用系统函数用法,实例分析了escape.parseInt.parseFloat.isNaN.isFinite等函数的用法,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了js常用系统函数用法.分享给大家供大家参考. 具体代码如下: 代码如下: <html> <head> </head> <body> <script type="text/javascript"> //1. escap

Python中optionParser模块的使用方法实例教程_python

本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内建的模块用于处理命令行参数: 一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的.符合Unix/Posix 规范的命令行说明. 示例如下: from optparse impo

jQuery中attr()与prop()函数用法实例详解(附用法区别)_jquery

本文实例讲述了jQuery中attr()与prop()函数用法.分享给大家供大家参考,具体如下: 一.jQuery的attr()方法 jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式. 1. attr(属性名) //获取属性的值(取得第一个匹配元素的属性值.通过这个方法可以方便地从第一个匹配元素中获取一个属性的值.如果元素没有相应属性,则返回 undefined ) 2.

jQuery中常用的遍历函数用法实例总结_jquery

本文实例总结了jQuery中常用的遍历函数用法.分享给大家供大家参考.具体如下: 1. children()函数 children()函数用于选取每个匹配元素的子元素,并以jQuery对象的形式返回. 你还可以使用选择器进一步缩小筛选范围,筛选出符合指定选择器的元素. 用法示例如下: // 返回jQuery对象所有匹配元素的标识信息数组 // 每个元素形如:tagName或tagName#id(如果有id的话) function getTagsInfo($doms){ return $doms.

php中convert_uuencode()与convert_uuencode函数用法实例_php技巧

本文实例讲述了php中convert_uuencode()与convert_uuencode函数用法.分享给大家供大家参考.具体分析如下: onvert_uudecode() 函数对 uuencode 编码的字符串进行解码. 语法:convert_uudecode(string),代码如下: 复制代码 代码如下: $str=",2&5l;&/@=v]r;&0a `";         //定义uuencode编码字符串 $result=convert_uudec

php中getservbyport与getservbyname函数用法实例_php技巧

本文实例讲述了php中getservbyport与getservbyname函数用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: string getservbyport ( int $port , string $protocol )   */ $services=array('80','21','22','23','25','143');      //定义数组 foreach($services as $service)         //循环读取内容 {   $protoc

Symfony2函数用法实例分析_php实例

本文实例讲述了Symfony2函数用法.分享给大家供大家参考,具体如下: 1.调用其他对象的方法. 例: $grobal_func=$this->container->get('global_func'); //'global_func'函数所在的文件名 $lot_data=$global_func->getDataFromFile($parm1); //getDataFromFile函数名 2.数据库的预备查询 $conn = $this->em->getConnectio

python中enumerate函数用法实例分析

  本文实例讲述了python中enumerate函数用法.分享给大家供大家参考.具体分析如下: 今日发现一个新函数 enumerate .一般情况下对一个列表或数组既要遍历索引又要遍历元素时,会这样写: ? 1 2 for i in range (0,len(list)): print i ,list[i] 但是这种方法有些累赘,使用内置enumerrate函数会有更加直接,优美的做法,先看看enumerate的定义: ? 1 2 3 4 5 6 7 def enumerate(collect