Python如何停止一个线程呢???我这种方法对不对啊???
我现在的方法如下:
线程定义如下:
#Transmit and Reciveclass TrThread(Thread): def run(self): self.doRecv =True while self.doRecv==True: rbuf = COM.read(1) #read one, with timeout if rbuf: n = COM.inWaiting() if n: rbuf = rbuf+COM.read(n) RQueue.put(rbuf) root.event_generate("<<COMRxRdy>>",when='tail') if TQueue: COM.write(TQueue.get()) time.sleep(0.005) def stop(self): self.doRecv = False
trcv=TrThread()trcv.setDaemon(True).........trcv.stop()trcv.join()
from threading import *import timeclass MyThread(Thread): def run (self): self.ifdo = True; while self.ifdo: print 'I am running...' time.sleep(0.1) def stop (self): print 'I will stop it...' self.ifdo = False;tr = MyThread()tr.setDaemon(True)tr.start()time.sleep(1)tr.stop()tr.join()
[解决办法]
这样就更直观了
from threading import *import timeclass MyThread(Thread): def run (self): self.ifdo = True; while self.ifdo: print 'I am running...' time.sleep(2) def stop (self): print 'I am stopping it...' self.ifdo = False;tr = MyThread()tr.setDaemon(True)tr.start()print 'I will stop it...'time.sleep(5)tr.stop()tr.join()
[解决办法]
你的线程有stop方法,setDaemon(True)和join()都可以免了吧...