title: python threads, multithreading with threading.thread
body: <p>I have to launch a thread in the background but the output seems to be following the thread rather than sticking within main.  I have something like this:</p>
  
  <pre><code>import threading
  
  def work()
    while True:
    do stuff
  
  def recieve()
    while True:
    await instruction
  
  #main
  
  recieve()
  if instruction == "do work"
    threading.Thread(target=work()).start()
  </code></pre>
  
  <p>I have many other instructions that get recieved and dealt with sequentially but as work() takes a long time to complete I need the thread, now, I would expect a thread to be launched that does work in the background whilst we continue to await instruction except this doesn't happen.  What happens is focus is kept on the newly created thread so further instructions can't be received.</p>
  
  <p>Why is this?  What is wrong?</p>
  
  <p>Many thanks</p>