我正在学习Py3.6中的concurrent.futures.ThreadPoolExecutor,对于使用future.add_done_callback(callback)和concurrent.futures.as_completed(futures)之间的区别、优缺点有些困惑。
你何时会选择其中一个?如果我理解正确,两者的目的或多或少相同。#1在任务完成并且相应的future已经解决时立即调用callback(future)
函数,而#2则按照任务完成和future解决的顺序返回futures对象
。
在这两种情况下,我们都可以使用future.results()检索返回的值(如果引发了异常,则使用raise future.exception())。
感谢任何关于此事的澄清。