title: Python ThreadPoolExecutor terminate all threads
body: <p>I am running a piece of python code in which multiple threads are run through threadpool executor. Each thread is supposed to perform a task (fetch a webpage for example). What I want to be able to do is to terminate all threads, even if one of the threads fail. For instance:</p>
  
  <pre><code>with ThreadPoolExecutor(self._num_threads) as executor:
      jobs = []
      for path in paths:
          kw = {"path": path}
          jobs.append(executor.submit(start,**kw))
      for job in futures.as_completed(jobs):
          result = job.result()
          print(result)
  def start(*args,**kwargs):
      #fetch the page
      if(success):
          return True
      else:
          #Signal all threads to stop
  </code></pre>
  
  <p>Is it possible to do so? The results returned by threads are useless to me unless all of them are successful, so if even one of them fails, I would like to save some execution time of the rest of the threads and terminate them immediately. The actual code obviously is doing relatively lengthy tasks with a couple of failure points.</p>