Python:使用threading模块实现多线程编程三[threading.Thread类的重要函数]
2013-03-06 14:11
921 查看
这篇文章主要介绍threading模块中的主类Thread的一些主要方法,实例代码如下:
Python代码
'''''
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()
1 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方法,代码:
Python代码
def __init__(self):
threading.Thread.__init__(self)
self.setName("new" + self.name)
2 join方法
join方法原型如下,这个方法是用来阻塞当前上下文,直至该线程运行结束:
Python代码
def join(self, timeout=None):
timeout可以设置超时蚕食
3 setDaemon方法
当我们在程序运行中,执行一个主线程,如果主线程又创建一个子线程,主线程和子线程就分兵两路,当主线程完成想退出时,会检验子线程是否完成。如果子线程未完成,则主线程会等待子线程完成后再退出。但是有时候我们需要的是,只要主线程完成了,不管子线程是否完成,都要和主线程一起退出,这时就可以用setDaemon方法,并设置其参数为True。
Python代码
'''''
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()
1 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方法,代码:
Python代码
def __init__(self):
threading.Thread.__init__(self)
self.setName("new" + self.name)
2 join方法
join方法原型如下,这个方法是用来阻塞当前上下文,直至该线程运行结束:
Python代码
def join(self, timeout=None):
timeout可以设置超时蚕食
3 setDaemon方法
当我们在程序运行中,执行一个主线程,如果主线程又创建一个子线程,主线程和子线程就分兵两路,当主线程完成想退出时,会检验子线程是否完成。如果子线程未完成,则主线程会等待子线程完成后再退出。但是有时候我们需要的是,只要主线程完成了,不管子线程是否完成,都要和主线程一起退出,这时就可以用setDaemon方法,并设置其参数为True。
相关文章推荐
- Python:使用threading模块实现多线程编程三[threading.Thread类的重要函数]
- Python:使用threading模块实现多线程编程三[threading.Thread类的重要函数]
- Python:使用threading模块实现多线程编程四[使用Lock互斥锁]
- Python:使用threading模块实现多线程
- Python:使用threading模块实现多线程(转)
- Python:使用threading模块实现多线程编程六[可重入锁RLock]
- Python:使用threading模块实现多线程编程五[死锁的形成]
- Python:使用threading模块实现多线程编程六[可重入锁RLock]
- Python:使用threading模块实现多线程编程二[两种方式起线程]
- Python:使用threading模块实现多线程(转)
- 在python中实现生产者和消费者的例子(五):使用threading模块和全局变量
- Python:使用threading模块实现多线程编程四[使用Lock互斥锁]
- Python:使用threading模块实现多线程编程七[使用Condition实现复杂同步]
- Python:使用threading模块实现多线程编程
- Python:使用threading模块实现多线程编程六[可重入锁RLock]
- Python:使用threading模块实现多线程
- Python:使用threading模块实现多线程编程七[使用Condition实现复杂同步]
- Python:使用threading模块实现多线程(转)
- Python:使用threading模块实现多线程编程四[使用Lock互斥锁]
- Python:使用threading模块实现多线程编程八[使用Event实现线程间通信]