Python如何停止一个线程呢???我这种方法对不对啊???
我现在的方法如下:
线程定义如下:
在想要停止这个线程的地方做如下操作:
但是我发现程序会死在trcv.join()调用的地方,,,请问这是为什么呢???应该如何解决呢???
线程定义如下:
#Transmit and Recive
class 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()
但是我发现程序会死在trcv.join()调用的地方,,,请问这是为什么呢???应该如何解决呢???
...全文
相关推荐
python 如何停止一个死循环的线程
进程想要执行任务就需要依赖线程。换句话说,就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。 那什么是多线程?提到多线程这里要说两个概念,就是串行和并行,搞清楚这个,我们才能更好地理解多线程。 所谓串行,其实是相对于单条线程来执行多个任务来说的,我们就拿下载文件来举个例子:当我们下载多个文件时,在串行中它是按照一定的顺序去进行下载的,也就是说,必须等下载完A之后才能开始下载B,它们在时间上是不可能发生重叠的。 并行:下载多个文件,开启多条线程,多个文件同时进行下载,这里是严格意义上的,在同一时刻发生的,并行在时间上是重叠的。 问题描述: 前几天写一个项目,然后项目中有一个死循
python杀死一个线程的方法
由于python线程没有提供abort方法,所以我们需要自己想办法解决此问题,面对这一问题,小编帮大家解决phthon杀死一个线程的方法,需要的朋友一起来学习吧
python 多线程重启方法
今天小编就为大家分享一篇python 多线程重启方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
python中threading开启关闭线程操作
主要介绍了python中threading开启关闭线程操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
PyQt5多线程的执行和停止
实现三个线程同时执行,且可以单独关闭和运行,通过进度条实现可视化演示。



