Python公开课 - 标准库Thread详解
Thread介绍
Thread
类表示在单独的控制线程中运行的活动。有两种方法可以指定活动:
- 将可调用对象传递给构造函数
- 或者通过覆盖run() 子类中的方法。
换句话说,只 覆盖此类的 __init__()和run()方法。
创建线程对象后,必须通过调用线程的start()方法启动其活动。这将run() 在单独的控制线程中调用该方法。
一旦线程的活动开始,线程就被认为是“活着的”。当它的run()方法终止时,它会停止
通过is_alive()
方法判断线程是否存活。
其他线程可以调用线程的join()方法。这会阻塞调用线程,直到调用其join()方法的线程终止。
线程有一个名字。名称可以通过构造函数传递,并通过name属性读取或更改。
线程可以标记为“守护程序线程”。
构造方法
Thread(group=None, target=None, name=None, args=(), kwargs={})
说明:
- group: 线程组,目前还没有实现,库引用中提示必须是None;
- target: 要执行的方法
- name: 线程名
- args/kwargs: 要传入方法的参数
实例方法
isAlive()
: 返回线程是否在运行。正在运行指启动后、终止前get/setName(name)
: 获取/设置线程名start()
: 线程准备就绪,等待CPU调度run()
: 线程运行逻辑is/setDaemon(bool)
: 获取/设置是守护线程(在start之前设置)如果是守护线程,主线程执行过程中,守护线程也在进行,主线程执行完毕后,守护线程不论成功与否,主线程和后台线程均停止。如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台线程也执行完成后,程序停止join([timeout])
: 阻塞当前上下文环境的线程,直到调用此方法的线程终止或到达指定的timeout(可选参数)
示例说明
import threading
class MyThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
pass
def run(self):
print('Hello World')
t = MyThread()
t.start()
展开剩余53%