杀死Python线程

时间:2017-01-13 09:37:02

标签: python multithreading

我正在使用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秒钟。

谢谢。

1 个答案:

答案 0 :(得分:1)

  

永远不要试图从该线程外部的东西中杀死一个线程。您   永远不知道该线程是否持有锁。 Python没有提供   外部杀死线程的直接机制;但是,你可以做到   使用ctypes,但这是一个陷入僵局的方法。

这句话来自Raymond Hettinger,关于此问题有一个speech