threading中的setDaemon():
import time
import threading #线程模块
def sub(i):
print('子线程开始...')
time.sleep(1)
print(i)
print('子线程结束!')
def main():
print('主线程开始...')
start = time.time()
#使用线程
for i in range(5): #开启5个线程
# 第一个参数target是线程调用函数,第二个参数args是一个数组变量,用于给worker函数传参,有几个参数就写几个,用","分割,最后的逗号不能少,少了就不是数组了,就会出错。
th = threading.Thread(target=sub, args=(i,))
th.setDaemon(True) #设置守护进程
th.start()
end = time.time()
print("总运行时长:%s秒" % (end-start))
print('主线程结束!')
if __name__ == "__main__":
main()
设置setDaemon()时,结果如下:
主线程开始...
子线程开始...
子线程开始...
子线程开始...
子线程开始...
子线程开始...
总运行时长:0.002000093460083008秒
主线程结束!
主线程结束后,子线程没有继续执行。
setDaemon()注释掉时,结果如下: