在生活中有一些顺序被大家所遵守,比如先小后大的一次摆放,又或是根据字母顺序进行排列。而我们今天所要说的守护线程在之前将多线程中就有提过,可能有些小伙伴有一点模糊的印象。简单来说,就是主线程结束后就可以结束程序。这样说想必大家还是不能深刻理解,接下来就让我们在示例中找寻设置的方法吧。
setDaemon(bool) :设置守护线程,参数默认为False,如果需要设置,则设置为True,将子线程设置成守护线程后,主线程结束,无论守护线程是否执行完毕,守护线程和主线程一起停止。看了下面这个示例就知道了。
import time
import threading
def test():
print("启动任务")
start_time = time.ctime()
# 打印当前时间
print(start_time)
time.sleep(3)
end_time = time.ctime()
print(end_time)
print("结束任务")
def main():
print("启动主任务")
# 没有参数,args默认为空
t1 = threading.Thread(target=test,args=())
# 守护线程需要在start之前设置,否则无效
t1.setDaemon(True)
# t1.daemon = True
t1.start()
time.sleep(1)
print("结束主任务")
if __name__ == '__main__':
main()
守护线程有两种设置方法,在代码中注释有,另外需要注意的就是,守护线程一 定要在线程执行前设置,否则无效。我们从运行结果可以看到,主任务结束后,守护线程其实还没有结束,但也一起随主线程结束了,所以没有打印"结束任务"这句话。
下一篇: 没有了
一级建造师二级建造师消防工程师造价工程师土建职称房地产经纪人公路检测工程师建筑八大员注册建筑师二级造价师监理工程师咨询工程师房地产估价师 城乡规划师结构工程师岩土工程师安全工程师设备监理师环境影响评价土地登记代理公路造价师公路监理师化工工程师暖通工程师给排水工程师计量工程师
执业药师执业医师卫生资格考试卫生高级职称护士资格证初级护师主管护师住院医师临床执业医师临床助理医师中医执业医师中医助理医师中西医医师中西医助理口腔执业医师口腔助理医师公共卫生医师公卫助理医师实践技能内科主治医师外科主治医师中医内科主治儿科主治医师妇产科医师西药士/师中药士/师临床检验技师临床医学理论中医理论