title: return values with thread.start() in python (using queue)
body: <p>I'd like to create a multi-threaded version of a function. I discover <code>t.start()</code> returns <code>None</code>, so I have to use queue.
  I searched the documentation, but I don't understand how to use it in my example.</p>
  
  <p>This is the function:</p>
  
  <pre><code>def derivative(lst, var):  # Example of lst =  [1 + [3 * x]]
      if len(lst) == 1:       
          return derive_solver(lst[0], var)
  
      if lst[1] == '+':
          return [derivative(lst[0], var), '+', derivative(lst[2], var)]
  
      if lst[1]  == '*':
          return [[derivative(lst[0], var), '*', lst[2]], '+', [lst[0], '*', derivative(lst[2], var)]]
  </code></pre>
  
  <p>And this my attempt to multi-thread that function:</p>
  
  <pre><code>def derivative(lst, var):  # Example of lst =  [1 + [3 * x]]
      if len(lst) == 1:       
          return derive_solver(lst[0], var)
  
      if lst[1] == '+':
          t1 = threading.Thread(target = derivative,  args=(lst[0], var))
          t2 = threading.Thread(target = derivative,  args=(lst[2], var))
          return [t1.start(), '+', t2.start()]
  
      if lst[1]  == '*':
          t1 = threading.Thread(target = derivative,  args=(lst[0], var))
          t2 = threading.Thread(target = derivative,  args=(lst[2], var))
          return [[t1.start(), '*', lst[2]], '+', [lst[0], '*', t2.start()]] 
  </code></pre>
  
  <p>The problem is that <code>t1.start(</code>) doesn't return values...</p>
  
  <p>Have you any idea how to solve this using queue?</p>
  
  <p>Thank you!</p>