什么是线程 (thread)
线程也是一种多任务编程方式,可以使用计算机的多核资源。线程被称为轻量级的进程。
线程特征
*线程计算机多核分配的最小单位
*一个进程可以包含多个线程
*线程也是一个运行的过程,消耗计算机资源,多个线程共享进程的资源和空间
*线程的创建删除消耗的资源都要远远小于进程
*多个线程之间执行互不干扰
*线程也有自己的特有属性,比如指令集ID
常用函数方法:
threading.Thread()
功能 : 创建线程对象
参数 : target 线程函数
name 线程名称 默认Thread-1
args 元组 给线程函数位置传参
kwargs 字典 给线程函数键值传参
返回 : 线程对象
t.start() 启动线程
t.join([timeout]) 回收线程
t.daemon 属性
默认情况下主线程结束不会影响分支线程执行
设置为True时主线程退出则分支线程也退出
设置 daemon值
t.setDaemon(True)
t.daemon = True
判断属性值
t.isDeamon()
*要在start前设置,不会和join同用
from threading import Thread,currentThread from time import sleep #线程函数 def fun(sec): print("线程属性测试") sleep(sec) #线程对象的getName()属性获取名字 print("%s 线程结束"%currentThread().getName()) #创建线程 thread = [] for i in range(3): t = Thread(name = "zengsf%d"%i, target = fun, args = (2,)) thread.append(t) t.start() print("is alive:", t.is_alive()) #参看线程状态 thread[1].setName("fengshao") #设置线程对象名称 print(thread[1].name) #获取线程名称 #回收进程 for i in thread: i.join() 输出结果: 线程属性测试 线程属性测试 线程属性测试 is alive: True fengshao zengsf0 线程结束 fengshao 线程结束 zengsf2 线程结束