Python多线程编程(三):threading.Thread类的重要函数和方法


Posted in Python onApril 05, 2015

这篇文章主要介绍threading模块中的主类Thread的一些主要方法,实例代码如下:

'''  

Created on 2012-9-7  

 

@author:  walfred 

@module: thread.ThreadTest3  

@description: 

'''    

import threading  

 

class MyThread(threading.Thread):  

    def __init__(self):  

        threading.Thread.__init__(self)  

 

    def run(self):  

        print "I am %s" % (self.name)  

 

if __name__ == "__main__":  

    for i in range(0, 5):  

        my_thread = MyThread()  

        my_thread.start()

name相关

你可以为每一个thread指定name,默认的是Thread-No形式的,如上述实例代码打印出的一样:

I am Thread-1

I am Thread-2

I am Thread-3

I am Thread-4

I am Thread-5

当然你可以指定每一个thread的name,这个通过setName方法,代码:

def __init__(self):  

    threading.Thread.__init__(self)  

    self.setName("new" + self.name)

join方法

join方法原型如下,这个方法是用来阻塞当前上下文,直至该线程运行结束:

def join(self, timeout=None):  

        timeout可以设置超时

timeout可以设置超时蚕食

setDaemon方法

当我们在程序运行中,执行一个主线程,如果主线程又创建一个子线程,主线程和子线程就分兵两路,当主线程完成想退出时,会检验子线程是否完成。如果子线程未完成,则主线程会等待子线程完成后再退出。但是有时候我们需要的是,只要主线程完成了,不管子线程是否完成,都要和主线程一起退出,这时就可以用setDaemon方法,并设置其参数为True。

当然这上面列举的只是我们在编程是经常使用到的方法,更多方法,可以参见:Higher-level threading interface 

Python 相关文章推荐
Python基于回溯法子集树模板解决野人与传教士问题示例
Sep 11 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
浅谈python 里面的单下划线与双下划线的区别
Dec 01 Python
Python魔法方法详解
Feb 13 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
Python logging模块写入中文出现乱码
May 21 Python
Python如何定义有可选参数的元类
Jul 31 Python
Python gevent协程切换实现详解
Sep 14 Python
python爬虫请求库httpx和parsel解析库的使用测评
May 10 Python
Python读写yaml文件
Mar 20 Python
详解Python+OpenCV绘制灰度直方图
Mar 22 Python
Python多线程编程(二):启动线程的两种方法
Apr 05 #Python
Python多线程编程(一):threading模块综述
Apr 05 #Python
Python中使用dom模块生成XML文件示例
Apr 05 #Python
Python中比较特别的除法运算和幂运算介绍
Apr 05 #Python
Python中使用logging模块打印log日志详解
Apr 05 #Python
Python中的两个内置模块介绍
Apr 05 #Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 #Python
You might like
PHP开发文件系统实例讲解
2006/10/09 PHP
MYSQL数据库初学者使用指南
2006/11/16 PHP
js异或加解密效果代码
2008/06/25 Javascript
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
JavaScript创建、读取和删除cookie
2019/09/03 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
学习python (2)
2006/10/31 Python
下载糗事百科的内容_python版
2008/12/07 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
使用python实现ANN
2017/12/20 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
举例讲解Python常用模块
2019/03/08 Python
python修改FTP服务器上的文件名
2019/09/11 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
Java基础知识面试要点
2016/07/29 面试题
求职简历中个人的自我评价
2013/12/25 职场文书
2014年党课学习材料
2014/05/11 职场文书
土建施工员岗位职责
2015/04/11 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers