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