从另一个进程中杀死线程

时间:2012-01-23 14:59:23

标签: python multithreading

我知道杀死Thread子类的正确方法是定期检查某些标志(如self.running)是否设置为某个“kill”值,但是我有一个可能挂起等待输入的Thread无论如何,我想从外部过程中杀掉它。

任何帮助?

1 个答案:

答案 0 :(得分:1)

如果您愿意从线程模块切换到线程接口的多处理模块,那么这是可能的。所有需要做的就是跟踪启动的每个线程/进程的PID。

    from multiprocessing import Process
    import os,time

    class myThread(Process):
        def __init__(self):
            Process.__init__(self)

        def run(self):
            while True:
                os.system("sleep 5")


    if __name__ == '__main__':
         p = myThread()
         p.start()
         print "Main thread PID:",os.getpid()
         print "Launched process PID:",p.pid
         os.kill(p.pid,1)
         p.join()