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

 我来答
鈾氶瓏鈾
2016-11-17 · 知道合伙人软件行家
鈾氶瓏鈾
知道合伙人软件行家
采纳数:718 获赞数:1337

向TA提问 私信TA
展开全部

等待串口数据导致线程自己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()
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式