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脚本实现DNSPod DNS动态解析域名
Feb 14 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
python Pandas 读取txt表格的实例
Apr 29 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
python机器学习库scikit-learn:SVR的基本应用
Jun 26 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
Python 合并拼接字符串的方法
Jul 28 Python
如何在pycharm中安装第三方包
Oct 27 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 Class 文章
2007/04/04 PHP
php设计模式 Builder(建造者模式)
2011/06/26 PHP
php求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
使用PHP开发留言板功能
2019/11/19 PHP
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中使用HTMLParser解析html实例
2015/02/08 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
python爬虫中多线程的使用详解
2019/09/23 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
python switch 实现多分支选择功能
2020/12/21 Python
python实现计算图形面积
2021/02/22 Python
应届生的求职推荐信范文
2013/11/30 职场文书
函授自我鉴定范文
2014/02/06 职场文书
服务员岗位职责
2015/02/03 职场文书
学校捐书活动总结
2015/05/08 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server