这个小片段打印False
import subprocess
from concurrent import futures
with futures.ThreadPoolExecutor(max_workers=1) as executor:
future=executor.submit(subprocess.call, ['sleep', '2'])
print(future.cancel())
根据文档,这意味着"未来将无法取消":https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.cancel
取消():尝试取消通话。如果当前正在执行调用并且无法取消,则该方法将返回False,否则将取消调用并且该方法将返回True。
有没有办法取消未来,虽然cancel()
方法告诉我它无法取消?
我在Python 2.7上运行backport