title: Terminate python threads using sys.exit()
body: <p>I am looking for a way to terminate a thread by using sys.exit().
  I have two functions <code>add1()</code> and <code>subtract1()</code>, which are executed by each thread <code>t1</code> and <code>t2</code> respectively. I want to terminate <code>t1</code> after finishing <code>add1()</code> and <code>t2</code> after finishing <code>subtract1()</code>. I could see that <code>sys.exit()</code> do that work. Is it ok to do in such way?</p>
  
  <pre><code>import time, threading,sys
  
  functionLock = threading.Lock()
  total = 0;
  
  def myfunction(caller,num):
      global total, functionLock
  
      functionLock.acquire()
      if caller=='add1':
          total+=num
          print"1. addition finish with Total:"+str(total)
          time.sleep(2)
          total+=num
          print"2. addition finish with Total:"+str(total)
  
      else:
          time.sleep(1)
          total-=num
          print"\nSubtraction finish with Total:"+str(total)
      functionLock.release()
  
  def add1():
  
      print '\n START add'
      myfunction('add1',10)
      print '\n END add'
      sys.exit(0)
      print '\n END add1'           
  
  def subtract1():
  
    print '\n START Sub'  
    myfunction('sub1',100)   
    print '\n END Sub'
    sys.exit(0)
    print '\n END Sub1'
  
  def main():    
      t1 = threading.Thread(target=add1)
      t2 = threading.Thread(target=subtract1)
      t1.start()
      t2.start()
      while 1:
          print "running"
          time.sleep(1)
          #sys.exit(0)
  
  if __name__ == "__main__":
    main()
  </code></pre>