title: How does Timer in Python work, regarding multithreading?
body: <p>If I call </p>
  
  <pre><code>Timer(.1, some_function, [some_arguments]).start()
  </code></pre>
  
  <p>multiple times, what exactly happens behind the scenes?</p>
  
  <p>The source of our problem is ...</p>
  
  <p>We have a method that's essentially:</p>
  
  <pre><code>def move(target):
   force = calculateForce(target-getCurrentPosition())
   if(force != 0)
     setForce(force)
     Timer(.1, moveCursor, [tx]).start()
   else:
     setForce(0)
  </code></pre>
  
  <p>After setting the force, we need to check after a certain amount of time whether it should be stopped. (This information is to/from an external physical device that doesn't fire events.)</p>
  
  <p>There's weird issues in how much time this function is taking, and also we're getting "can't start new thread" errors after a certain amount of time.</p>
  
  <p>This leads me to believe that Timer(...) does not reuse threads but creates a new one every time.</p>
  
  <p>Combined with a belief that the library we're using isn't threadsafe, these errors would make some sense....</p>