发布时间:2022-09-01
# 使用shutdown等待所有线程结束后在打印主线程from concurrent.futures import ThreadPoolExecutorimport timedef work(num): time.sleep(1) print('工作线程:',num)if __name__ == '__main__': executor = ThreadPoolExecutor(max_workers=5) # 创建线程池,数量为5 for i in range(5): executor.submit(work, i) executor.shutdown(wait=True) # 等待线程池结束 print('主线程')# 打印内容如下工作线程: 0 工作线程: 1工作线程: 2工作线程: 3工作线程: 4主线程
如果想要在线程执行的过程中添加额外的功能,可以使用initializer参数,如下:
from concurrent.futures import ThreadPoolExecutor
def work(num):
print('工作线程:',num)
def test(num):
print('额外任务:',num)
if __name__ == '__main__':
executor = ThreadPoolExecutor(max_workers=5,initializer=test,initargs=(7,)) # 添加额外任务
for i in range(5):
executor.submit(work, i)
executor.shutdown(wait=True)
print('主线程')
# 打印内容如下
额外任务: 7
工作线程: 0
额外任务: 7
工作线程: 1
额外任务: 7
工作线程: 2
额外任务: 7
工作线程: 3
额外任务: 7
工作线程: 4
主线程
发表评论
留言: