1、threading模块介绍,如下:
python的thread模块是比较底层的模块,对应的是threading模块。
创建线程对象:threading.Thread(target=func)
,参数target指定线程执行的任务(函数)
2、Thread类提供了以下方法:
run()
用以表示线程活动的方法
start()
启动线程活动
join(time)
设置主线程会等待time秒后再往下执行,time默认为子线程结束,多个子线程之间设置的值
会叠加。
isAlive()
返回线程是否活动的
getName()
返回线程名。
setName()
设置线程名。
threading.currentThread()
返回当前执行的线程。
threading.enumerate()
返回正在运行的所有线程(list)。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
threading.activeCount()
返回正在运行的线程数量
1、举个例子,两个函数进行单任务执行。
2、如果想节省时间提高脚本执行效率,可以用线程。
第一种创建线程方法。新建任务1、2,func1(),func2()
再创建主线程进行执行任务,target参数没有表示没有任务,所以此参数不可或缺。
t1.start()表示任务开始
t1.join()表示阻塞上面的任务,执行完毕之后再执行计算时间脚本
3、第二种创建线程方法:继承线程类,重写run()方法。
Q1:如果想把要执行的任务写在run()方法中,可以继承线程。可以快速创建子线程,类对象不需要传参数,因为任务写在run()中了。下图1。
Q2:如果想传参,可以进行参数化配置。见下图2,类对象就可以传不同的参数了。
注:thread方法里明确定义,如果自己要定义__init__方法,就要继承父类的__init__方法。所以在定义__init__方法(进行参数化配置)时,要用超类继承父类的__init__方法。