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) (关闭线程池,并等待任务结束)