弱问python的问题.怎么终止一个子线程

2025-04-14 17:07:28
推荐回答(1个)
回答1:

等待串口数据导致线程自己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()