python 多线程问题,ThreadPoolExecutor线程池是否需要关闭?怎么关闭?

ThreadPoolExecutor线程池是否需要关闭?怎么关闭?

我开启了几个线程,这个线程池中有ThreadPoolExecutor,请问这个是否需要关闭?怎么关闭?新手,没查到相关的问题,特来请教

                                                                                                 

问题更新更正:

我是这样设计的:

我开启5条进程,这个进程是运行定时任务的,这个定时任务进程(Thread-9,Thread-10等等)是在等待中的,我想让定时任务的JOB完成后关闭进程池中的(ThreadPoolExecutor-0_0)这样的进程,附代码

 

def t1_start():
	scheduler1 = BlockingScheduler()
	scheduler1.add_job(updata, 'cron', day='*', hour=18, minute=20,jitter=200)
	scheduler1.start()

def t2_start():
	scheduler2 = BlockingScheduler()
	scheduler2.add_job(updata_to_emall, 'cron', day='*', hour=21, minute=20,jitter=200)
	scheduler2.start()

t1 = threading.Thread(target=t1_start)
t2 = threading.Thread(target=t2_start)

t1.start()
t2.start()

VSCODE中的进程池显示是这样的

 

 

 

 

个人理解,用with 方法,待任务完成后自行关闭,就像with open(...) as f,对文件的读写方法一样,不需要f.close()。

with ThreadPoolExecutor(max_workers=10) as ex: 

    ex.map(...)

可以使用 with 上下文管理器, 也可以使用线程池提供的方法 .shutdown(true) (关闭线程池,并等待任务结束)