title: Make the main thread wait until all threads finish
body: <p>So I have a list of threads, all started(using <code>threading.start()</code>), and I have to block the main thread all the threads in the list finish.</p>
  
  <p>This can be achieved by:</p>
  
  <pre><code>[x.join() for x in threads]
  </code></pre>
  
  <p>However, for each <code>x.join()</code> executed, all other threads are also blocked. What I want is that all the threads execute parallel to each other. The main program should resume only when ALL the threads are executed and no thread in the list should be blocked at any time.</p>
  
  <p>As far as I have understood, what I want does not happen with the join method, or am I wrong?</p>