我正在使用python使用机器人。 我使用多线程(在这种情况下是两个线程)。我想在线程B收到事件时停止线程A.
主:
tA = threading.Thread(target=runThreadA)
tA.setDaemon(True)
tB = threading.Thread(target=runThreadB)
tB.setDaemon(True)
tA.start()
tB.start()
主题A:
def runThreadA():
print "Estado1"
time.sleep(5)
print "Finalizo Estado1"
return 'out1'
主题B:
def runThreadB():
print "Estado2"
time.sleep(8)
print "Finalizo Estado2"
return 'a1'
我们想在线程A完成时杀死线程B,所以线程B不会等待3秒钟。
谢谢。
答案 0 :(得分:1)
永远不要试图从该线程外部的东西中杀死一个线程。您 永远不知道该线程是否持有锁。 Python没有提供 外部杀死线程的直接机制;但是,你可以做到 使用ctypes,但这是一个陷入僵局的方法。
这句话来自Raymond Hettinger,关于此问题有一个speech。