杀死线程不起作用
Killing a thread does not work
我有一个简单的线程调用:
aThread = threading.Thread(target=singleDriverThread, args=(d[0]))
然后我开始它 (aThread.start)
当我需要停止我的线程时:
aThread.join()
但线程保持 运行..帮助?
线程将继续 运行 直到可调用 singleDriverThread
returns.
示例:
如果您的可调用 singleDriverThread
看起来像这样,代码将永远不会停止:
def singleDriverThread():
while True:
# do stuff in eternal loop
pass
但是如果 singleDriverThread
看起来像这样:
def singleDriverThread():
# do stuff
return
然后可调用对象将 return 并且该线程将与您的其余代码结合。
如果你想停止一个线程,你应该杀死或发信号通知线程。 SO answer and this 处理停止线程。 join
方法只等待线程退出。
一般来说,要让一个线程优雅地停止,有一个与之通信的通道是很有用的,这样就可以传递一个停止消息/信号。
我有一个简单的线程调用:
aThread = threading.Thread(target=singleDriverThread, args=(d[0]))
然后我开始它 (aThread.start)
当我需要停止我的线程时:
aThread.join()
但线程保持 运行..帮助?
线程将继续 运行 直到可调用 singleDriverThread
returns.
示例:
如果您的可调用 singleDriverThread
看起来像这样,代码将永远不会停止:
def singleDriverThread():
while True:
# do stuff in eternal loop
pass
但是如果 singleDriverThread
看起来像这样:
def singleDriverThread():
# do stuff
return
然后可调用对象将 return 并且该线程将与您的其余代码结合。
如果你想停止一个线程,你应该杀死或发信号通知线程。 SO answer and this join
方法只等待线程退出。
一般来说,要让一个线程优雅地停止,有一个与之通信的通道是很有用的,这样就可以传递一个停止消息/信号。