title: Python 3 - Multiprocessing - Queue.get() does not respond
body: <p>I want to make a brute force attack and therefore need some speed... So I came up to use the multiprocessing library... However, in every tutorial I've found, something did not work.... Hm.. This one seems to work very well, except, that I whenever I call the get() function, idle seems to go to sleep and it doesn't respond at all. Am I just silly or what? I just copy pasted the example, so it should have worked....</p>
  
  <pre><code>import multiprocessing as mp
  import random
  import string
  
  # Define an output queue
  output = mp.Queue()
  
  # define a example function
  def rand_string(length, output):
      """ Generates a random string of numbers, lower- and uppercase chars. """
      rand_str = ''.join(random.choice(
                      string.ascii_lowercase
                      + string.ascii_uppercase
                      + string.digits)
                 for i in range(length))
      output.put(rand_str)
  
  
  
  
  # Setup a list of processes that we want to run
  processes = [mp.Process(target=rand_string, args=(5, output)) for x in range(2)]
  
  # Run processes
  for p in processes:
      p.start()
  
  # Exit the completed processes
  for p in processes:
      p.join()
  
  # Get process results from the output queue
  results = [output.get() for p in processes]
  
  print(results)
  </code></pre>