import threading
import time
def func1():
print('--非守护线程开始--')
time.sleep(2)
print('--非守护线程结束--')
def func2():
print('--守护线程开始--')
time.sleep(4)
print('--守护线程结束--')
if __name__ == '__main__':
# 创建线程 args里入参 参数需要,逗号哦
t1 = threading.Thread(target=func1,args=())
t2 = threading.Thread(target=func2,args=())
# 设置守护线程 不管t2啦---
# t2.setDaemon(True)
# 线程gogogo
t1.start()
t2.start()
# 线程阻塞 等结束不然不打印
t1.join()
t2.join()
print('结束啦')
线程池
from multiprocessing import Manager,Pool
def func(li, c):
print(li,c)
li.append(c)
if __name__=="__main__":
# Manager让线程共用一个变量 如果不用Manager每个线程独立创建一个d = []
# d = Manager().list()
d = []
groups = [(d, 1), (d, 2), (d, 3)]
# 设置线程池
pool = Pool(3)
# 开始线程
pool.starmap(func,groups)
# 释放线程池
pool.close()
# 设置线程阻塞
pool.join()
# 可以尝试解开Manger注释
print(d)