from threading import *import time class 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 time class 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()
等待串口数据导致线程自己sleep而没有机会执行,主线程的join没法继续,方法就是这样的,换成这个能执行from threading import *import time class 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 time class 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()