繁体   English   中英

杀死线程不起作用

[英]Killing a thread does not work

我有一个简单的线程调用:

aThread = threading.Thread(target=singleDriverThread, args=(d[0]))

然后启动它(aThread.start)

当我需要停止线程时,我会执行以下操作:

aThread.join()

但是线程继续运行。

线程将继续运行,直到可调用singleDriverThread返回。

例:

如果您的可调用singleDriverThread如下所示,则代码将永远不会停止:

def singleDriverThread():
    while True:
        # do stuff in eternal loop
        pass

但是,如果singleDriverThread看起来像这样:

def singleDriverThread():
     # do stuff
     return

然后该callable将返回,并且该线程将与您的其余代码结合在一起。

如果要停止线程,则应杀死该线程或向该线程发出信号。 这个SO答案和这个SO答案处理停止线程。 join方法仅等待线程退出。

通常,为了使线程正常停止,与它建立通信通道很有用,这样可以传递停止消息/信号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM