是否有可能优雅地终止一个使用joblib(线程后端)运行的进程,并仍然返回到目前为止计算出的结果?
parallel = Parallel(n_jobs=4, backend="threading")
result = parallel(delayed(dummy_f)(x) for x in range(100))
目前我想到了两个解决方案
parallel._aborted = True
,等待已启动的任务完成(在我的情况下可能会非常耗时)parallel._terminate_backend()
,如果管道中仍有作业未完成,则会挂起 (parallel._jobs
不为空)
是否有一种方法可以绕过库来实现这个目标?