让主进程不在等待子进程,只要主进程结束,不管子进程是否执行完成,子进程都要随着主进程结束而中止
# coding:utf-8
# 作者 : 王
# 职业 : 嘉心糖
# 时间 : 2022/5/9 17:29
import threading
import os,time
class MyThread(threading.Thread):
def run(self):
for i in range(3):
print("线程名字%s,输出:%d" % (self.name, i)) # 自定义的线程类,可以从父类中继承name属性
time.sleep(1)
if __name__ == '__main__':
start = time.time()
print("主程序开始时间:%s"%time.time())
# 创建一个线程
t = MyThread()
# t.run()
# t.setDaemon(True) # 该写法已被daemon代替
t.daemon=True # 当前子线程设置为守护线程
t.start() # 启动线程
# 等待所有的子线程都停止之后,主线程才终止
time.sleep(1) # 给予子线程执行时间
end = time.time()
print("主线程结束:中间执行的时间为%f"%(end-start))
运行结果
for循环本循环三次,但结果只输出了两次,当要循环第三次时,主线程已经结束了,因此子进程也必须随着主线程中止。
| 方法 | 介绍 |
|---|---|
| start | 开始运行生成的线程实例 |
| run | 重载此方法,作为线程的运行部分 |
| join | 等待线程结束 |
| getName | 返回线程的名字 |
| daemon = | 设置线程后台的运行标志 |
每个线程⼀定会有⼀个名字,尽管上⾯的例⼦中没有指定线程对象的 name,但是python会⾃动为线程指定⼀个名字。
当线程的run()⽅法结束时该线程完成。
⽆法控制线程调度程序,但可以通过别的⽅式来影响线程调度的⽅式。
线程的⼏种状态:新建-> 就绪 -> 运行->等待(阻塞) ->中止(死亡)



