title: How to synchronize threads in python?
body: <p>I have two threads in python (2.7).
  I start them at the beginning of my program. While they execute, my program reaches the end and exits, killing both of my threads before waiting for resolution.</p>
  
  <p>I'm trying to figure out how to wait for both threads to finish before exiting.</p>
  
  <pre><code>def connect_cam(ip, execute_lock):
      try:
          conn = TelnetConnection.TelnetClient(ip)
          execute_lock.acquire()
          ExecuteUpdate(conn, ip)
          execute_lock.release()
      except ValueError:
          pass
  
  
  execute_lock = thread.allocate_lock()
  thread.start_new_thread(connect_cam, ( headset_ip, execute_lock ) )
  thread.start_new_thread(connect_cam, ( handcam_ip, execute_lock ) )
  </code></pre>
  
  <p>In .NET I would use something like WaitAll() but I haven't found the equivalent in python. In my scenario, TelnetClient is a long operation which may result in a failure after a timeout.</p>