在生活中有一些顺序被大家所遵守,比如先小后大的一次摆放,又或是根据字母顺序进行排列。而我们今天所要说的守护线程在之前将多线程中就有提过,可能有些小伙伴有一点模糊的印象。简单来说,就是主线程结束后就可以结束程序。这样说想必大家还是不能深刻理解,接下来就让我们在示例中找寻设置的方法吧。
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()
守护线程有两种设置方法,在代码中注释有,另外需要注意的就是,守护线程一定要在线程执行前设置,否则无效。我们从运行结果可以看到,主任务结束后,守护线程其实还没有结束,但也一起随主线程结束了,所以没有打印”结束任务”这句话。
两种守护线程的方法都不是很难,小伙伴们可以都输入代码进行试验。关于其中守护线程设置顺序小编再次着重强调,不然有些小伙伴会忽略这一点。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试