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进程管理工具supervisor使用实例
Sep 17 Python
使用Python的Twisted框架实现一个简单的服务器
Apr 16 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
python绘制散点图并标记序号的方法
Dec 11 Python
对python requests发送json格式数据的实例详解
Dec 19 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
python 字符串常用函数详解
Sep 11 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 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
ASP知识讲座四
2006/10/09 PHP
php中使用sftp教程
2015/03/30 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
Python聊天室程序(基础版)
2018/04/01 Python
基于python实现简单日历
2018/07/28 Python
Linux下python3.7.0安装教程
2018/07/30 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
深入解析神经网络从原理到实现
2019/07/26 Python
python实现文件的分割与合并
2019/08/29 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
python实现扫雷游戏的示例
2020/10/20 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
大学生创业感言
2014/01/25 职场文书
洗发水广告词
2014/03/13 职场文书
幼儿园新年寄语
2014/04/03 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
Docker官方工具docker-registry案例演示
2022/04/13 Servers
Golang 实现WebSockets
2022/04/24 Golang