关于 pool.close
来源:2-6 线程的调度和优化
浪淘沙98
2019-09-04 14:49:40
pool.close,这里的close 啥意思?
干嘛的?为什么要用到?
没有close会怎样?
1回答
同学你好:
close():关闭线程池。
关闭指的是不再接收其他线程的任务,当前的所有线程任务执行完毕之后,该线程池则完全关闭。
原因:如果所有的任务完成,不关闭线程池,势必会造成资源(开启线程池占用内存和cpu)的浪费。
如果join()在close()之前:主线程的阻塞会让线程池任务还有任务需要执行,所以pool的状态是未关闭。
不关闭线程池:不关闭线程池,那么线程池状态没有关闭。会raise(弹出)异常。
close代码:
说的是把状态改为不可再插入元素的状态,完全关闭进程池使用。
join代码:
如果状态依旧为RUN,那么会raise(弹出)异常(Pool is still running)。
如果我解决了同学的题,请采纳!学习愉快^_^。
相似问题