杀死一个线程并不意味着

2024-09-28 17:02:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

然后我就开始了(aThread.开始)你知道吗

当我需要停止线程时,我会:

aThread.join()

但是线一直在走。。救命啊?你知道吗


Tags: targetargs线程threadthreadingjoin我会singledriverthread
2条回答

如果你想停止一个线程,你应该终止或者给线程发信号。这个SO answer和这个SO answer处理停止线程。join方法只等待线程退出。你知道吗

一般来说,为了使线程优雅地停止,有一个与之通信的通道是有用的,这样就可以传递停止消息/信号。你知道吗

线程将继续运行,直到可调用的singleDriverThread返回。你知道吗

示例:

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

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

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

def singleDriverThread():
     # do stuff
     return

然后callable将返回,线程将与其余代码连接。你知道吗

相关问题 更多 >