title: What is the difference between using the method ThreadPoolExecutor.shutdown(wait=True), shutdown(wait=False) and without using this one?
body: <p>I can't understand difference. Help me to watch this difference. And what about ProcessPoolExecutor, is his behavior the same?</p>
  
  <pre><code>def func(task):
      do_something(task)
  
  tasks = [task for i in range(12)]
  executor = ThreadPoolExecutor(4)
  executor.map(func, tasks)
  executor.shutdown(wait=True)  # ok, here the main thread waits for others
  
  tasks = [task for i in range(12)]
  executor = ThreadPoolExecutor(4)
  executor.map(func, tasks)
  executor.shutdown(wait=False)  # here it doesn't wait and what can happens bad?
  
  tasks = [task for i in range(12)]
  executor = ThreadPoolExecutor(4)
  executor.map(func, tasks)  # if i don't call shutdown ?
  </code></pre>