title: Execute Functions in a FIFO queue with Thread Locking
body: <p>I want to execute function calls in a FIFO queue and get the results from each call.</p>
  
  <pre><code>def func1(arg1):
      return arg1
  def func2(arg1):
      return arg1
  </code></pre>
  
  <p>I will call these functions from different threads at random times. So basically what I want is that only one of these functions is executed at a time and I want to be able to get the return values from each call.</p>