杀死一个帖子不起作用

时间:2017-01-16 18:33:01

标签: python multithreading python-multithreading

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

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

然后我启动它(aThread.start)

当我需要停止我做的主题时:

aThread.join()

但是线程一直在运行..帮助?

2 个答案:

答案 0 :(得分:1)

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

示例:

如果您的可调用singleDriverThread看起来像这样,代码永远不会停止:

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

但如果singleDriverThread看起来像这样:

def singleDriverThread():
     # do stuff
     return

然后callable将返回,并且线程将与其余代码一起加入。

答案 1 :(得分:1)

如果你想停止一个线程,你应该杀死或发信号。此SO answer和此SO answer处理停止线程。 join方法只等待线程退出。

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