setDaemon方法必须在start方法前定义。t1.setDaemon(True),该语句的意思是:将主线程A设置为子线程t1的守护线程。也就是在执行程序时,t1会随着主线程A的退出而退出,不论t1是否执行完毕。
例1:当我们在程序中设置一个子线程并将其设为被守护线程时,那么该子线程会随着主线程的退出而退出,整个程序会在主线程执行结束后终止。
import threading import time def print_number(num): print("-----> %d" % num, time.ctime()) time.sleep(5) print("print_number ending......", time.ctime()) t1 = threading.Thread(target=print_number,args=(10,)) if __name__ == '__main__': t1.setDaemon(True) t1.start() print("Main thread ended...")
输出结果如下:
-----> 10 Wed Mar 20