Python特使赢得';t螺纹
我希望在后台线程中从python启动此命令,同时使用以下命令保持主程序线程运行: 这可以工作,但是挂起,它没有像它应该做的那样运行线程,所以我不能在完成后杀死它。我试着把它包成一条线:Python特使赢得';t螺纹,python,multithreading,Python,Multithreading,我希望在后台线程中从python启动此命令,同时使用以下命令保持主程序线程运行: 这可以工作,但是挂起,它没有像它应该做的那样运行线程,所以我不能在完成后杀死它。我试着把它包成一条线: class FileServerThread(Thread): def __init__(self): Thread.__init__(self) self.process = None def run(self): self.process =
class FileServerThread(Thread):
def __init__(self):
Thread.__init__(self)
self.process = None
def run(self):
self.process = envoy.run('python -m SimpleHTTPServer 9999')
def kill(self):
self.process.kill
但同样,这不起作用,因为self.process从未被分配(因为embassage.run不会结束,也不会返回)
有什么帮助吗?恐怕您不能用
run
来完成,但您可以通过connect
来完成
import envoy
p = envoy.connect("python -m SimpleHTTPServer 9999")
print "run here!"
p.kill()
然而,在kill()
之后,我发现进程变成了僵尸,p.block()
将解决它
import envoy
p = envoy.connect("python -m SimpleHTTPServer 9999")
print "run here!"
p.kill()