是否可以优雅地终止强权b进程(线程后端),而仍然返回到目前为止计算出来的结果?
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不为空)有什么方法可以绕过库来做到这一点吗?
发布于 2021-08-06 06:45:48
据我所知,没有提供杀死生成线程的方法。当每个子线程在自己的上下文中运行时,实际上很难执行优雅的杀戮或终止。尽管如此,有一个解决办法是可以采用的。
模拟.join() (用于线程)功能(某种):
shared_dict,其键对应于每个线程id,如果包含线程输出或异常,则值:
shared_dict = {i: in for i in range(num_workers)}all(shared_dict.values())的异常处理程序https://stackoverflow.com/questions/42702199
复制相似问题