import os
import threading
import time
import subprocess
class R(threading.Thread):
def __init__(self, cmd):
threading.Thread.__init__(self)
self.cmd = cmd
self.flag = False
self.pro = subprocess.Popen(self.cmd)
def setFlag(self, f):
self.flag = f
def run(self):
while True:
if self.pro == None:
break
elif self.flag:
self.pro.kill()
break
def p(cmd):
#t = os.popen(cmd).read()
t = subprocess.Popen(['java', 'T'])
print t
def f():
t1 = time.time()
print '0000000000'
t = threading.Thread(target=p, args=('java T',))
t.start()
print '1111111111'
time.sleep(2)
t2 = time.time()
t0 = t2 - t1
def f2():
cmd = ['java', 'T']
r = R(cmd)
r.start()
time.sleep(2)
r.setFlag(True)
if __name__ == '__main__':
f2()
本文介绍了一个使用Python实现的多线程类R,该类可以启动并管理一个子进程,通过设置标志位来控制子进程的终止。此外,还展示了如何创建线程并运行Java程序作为子进程的例子。
664

被折叠的 条评论
为什么被折叠?



