1、threading模块介绍
python的thread模块是比较底层的模块,python的threading模块 是对thread做了-些包装的,可以更加方便的被使
用
●创建线程对象: threading.Thread(target=func)
●参数target指定线程执行的任务(函数)
Thread类提供了以下方法:
run():用以表示线程活动的方法
start():启动线程活动
join([time]):设置主线程会等待time秒后再往下执行,time默认为子线程结束,多个子线程之间设置的值会叠加
2、多线程实现多任务
python中线程释放全局解释器锁的两种状态(线程切换):
1、线程中执行遇到IO、耗时操作
2、线程执行的时达到指定的阈值(0.005秒)
# 获取线程切换的阈值
# import sys
# print(sys.getswitchinterval())
1)、使用Thread类来创建线程
使用多线程完成上面的两件事
创建线程:
# 创建线程对象
t1 = threading.Thread(target=func)
# 创建线程的参数:
target:指定线程执行的任务函数
name:设置线程名称
args:给任务函数传递参数(元组)
kwargs:给任务函数传递参数(字典)
daemon:是否设为守护线程
守护线程:主线程执行结束、子线程不管有没有执行完,都终止执行
启动线程:当调用 start() 时,才会真正的创建线程,并且开始执行
t1.start()
t1.join() #主线程默认是不会等待子线程,子线程执行子线程的任务,主线程执行主线程的,join 方法可以设置主线程等待的时间,多个子线程同时使用join设置的时间会叠加
#线程对象的方法:
start(): #启动线程
getName() # 获取线程名
is_alive() # 判断线程是否存活
isAlive()
isDaemon