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

这篇文章主要介绍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

Posted in 未分类

发表评论