title: How terminate Python thread without checking flag continuously
body: <pre><code>class My_Thread(threading.Thread):
  
      def __init__(self):
          threading.Thread.__init__(self)
  
      def run(self):
          print "Starting " + self.name
          cmd = [ "bash", 'process.sh']
          p = subprocess.Popen(cmd,
                       stdout=subprocess.PIPE,
                       stderr=subprocess.STDOUT)
          for line in iter(p.stdout.readline, b''):
              print ("-- " + line.rstrip())
          print "Exiting " + self.name
  
      def stop(self):
          print "Trying to stop thread "
          self.run = False
  
  thr = My_Thread()
  thr.start()
  time.sleep(30)
  thr.stop()
  thr.join()
  </code></pre>
  
  <p>So i have thread like show above, actually work on windows and process.sh is bash script which run in cygwin and takes around 5 min to finish execution so its not a loop its some simulation proecess</p>
  
  <p>i want to create stop() function in this class so that i can terminate script immediately when i want. after termination i am not expecting any useful result from process.sh script</p>
  
  <p>please can u suggest any method, If possible please give little explanation too..</p>