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

yipeiwu_com5年前Python基础

这篇文章主要介绍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如何生成便签图片详解

前言 最近有文字转图片的需求,但是不太想下载 APP,就使用 Python Pillow 实现了一个,效果如下: PIL 提供了 PIL.ImageDraw.ImageDraw.te...

Python随机生成带特殊字符的密码

在日常运维中,如果涉及到用户管理,就一定会用到给用户设置密码的工作,其实吧,平时脑子里觉得设置个密码没什么,但要真让你随手敲一个12位带特殊字符的随机密码,也是很痛苦的事,如果让你敲10...

解决python写入带有中文的字符到文件错误的问题

在python写脚本过程中需要将带有中文的字符串内容写入文件,出现了报错的现象。 ---------------------------- UnicodeEncodeError: 'as...

跟老齐学Python之编写类之一创建实例

说明:关于类的这部分,我参考了《Learning Python》一书的讲解。 创建类 创建类的方法比较简单,如下: 复制代码 代码如下: class Person:  注意,...

windows 10 设定计划任务自动执行 python 脚本的方法

windows 10 设定计划任务自动执行 python 脚本的方法

我用 python 写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中。之前我都是手动执行这些脚本,现在我希望如何这些脚本能...