threading模块是Python支持的多线程编程的重要模块,该模块是在底层模块_thread的基础上开发的更高层次的多线程编程接口,提供了大量的方法和类来支持多线程编程。
threading模块常用方法如下:
方法 | 功能说明 |
---|---|
threading.active_count() | 返回当前处于active状态的Thread对象 |
threading.current_thread() | 返回当前Thread对象 |
threading.get_ident() | 返回当前线程的线程标识符。线程标识符是一个非负整数,并无特殊含义,只是用来标识线程,该整数可能会被循环利用。Python3.3及以后版本支持该方法 |
threading.enumerate() | 返回当前处于active状态的所有Thread对象列表 |
threading.main_thread() | 返回主线程对象,即启动Python解释器的线程对象。Python3.4及以后版本支持该方法 |
threading.stack_size() | 返回创建线程时使用的栈的大小,如果指定size参数,则用来指定后续创建的线程使用的栈大小,size必须是0(表示使用系统默认值)或大于32K的正整数 |
threading模块提供了Thread、Lock、RLock、Condition、Event、Timer和Semaphore等类来支持多线程,Thread是其中最重要也是最基本的一个类,可以通过该类创建线程并控制线程的运行。
使用Thread创建线程的方法:
Thread对象成员如下:
成员 | 说明 |
---|---|
start() | 自动调用run()方法,启动线程,执行线程代码 |
run() | 线程代码,用来实现线程的功能与业务逻辑,可以在子类中重写该方法来自定义线程的行为 |
init(self, group=None, target=None, name=None, args=(), kwargs=None, daemon=None) | 构造函数 |
name | 用来读取或设置线程的名字 |
ident | 线程标识,用非0数字或None(线程未被启动) |
is_alive(), isAlive() | 测试线程是否处于active状态 |
daemon | 表示线程是否为守护线程,默认为False |
join(timeout=None) | 等待线程结束后超时返回 |
1. 创建多线程
import threading
import time