title: Python creates 2 times more threads than expected
body: <p>I'm new to Python so my apologies if this is something obvious.</p>
  
  <p>I'm trying to build multi threaded application, however when I want to create a thread I get two instead of one. </p>
  
  <p><strong>MyThread.py</strong></p>
  
  <pre><code>from threading import Thread
  import time
  
  class MyThreadClass(Thread):
  
      def __init__(self):
          Thread.__init__(self)
  
      def run(self):
          print "starting " + self.getName() + "\n"
          from main import var1
          while True:
              print self.getName() + " is running\n"
              print "value: " + var1 + "\n"
              time.sleep(1)
  </code></pre>
  
  <p><strong>main.py</strong></p>
  
  <pre><code>from MyThread import MyThreadClass
  var1 = "Test"
  MyThreadClass().start()
  </code></pre>
  
  <p>The output I get</p>
  
  <pre><code> Thread-1 is running
   Thread-2 is running
   Thread-1 is running
   Thread-2 is running
   Thread-1 is running
   Thread-2 is running
   .....
  </code></pre>
  
  <p>Why is it happening? I noticed that if I replace <code>MyThreadClass().start()</code> with <code>MyThreadClass().run()</code> I get 2 threads but only one of them keeps running</p>
  
  <pre><code> Thread-1 is running
   Thread-2 is running
   Thread-2 is running
   Thread-2 is running
   Thread-2 is running
   .....
  </code></pre>
  
  <p>Any idea what's wrong with the code?</p>