threading线程及线程池

本文探讨了Python的threading模块,包括setDaemon()方法如何影响主线程与子线程的执行,以及join()方法在检测线程结束时的作用。此外,还介绍了线程池的使用,如submit()、map()和wait()方法的应用及其效果。
摘要由CSDN通过智能技术生成

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()注释掉时,结果如下:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值