擅长:python、mysql、java
<p>事件是线程(<a href="http://docs.python.org/2/library/threading.html#event-objects" rel="nofollow">http://docs.python.org/2/library/threading.html#event-objects</a>)之间通信的好方法。但是,另一个问题是top命令实际上将永远运行。我会这样做:</p>
<pre><code>def run_top(event, top_cmd):
s = subprocess.Popen(top_cmd, stdout=open('123.txt', 'w'))
event.wait() # Wait until event is set, then kill subprocess
s.kill()
def run_monkey(event, monkey_cmd):
subprocess.call(monkey_cmd)
event.set() # Once we're finished set the event to tell the other thread to exit
event = threading.Event()
threading.Thread(target=run_top, args=(event, your_top_command)).start()
threading.Thread(target=run_monkey, args=(event, your_monkey_command)).start()
</code></pre>
<p>可能也有一种方法可以杀死线程,但这很难看,这种方法更容易控制。在</p>
<p>我还想说run_monkey()不需要在线程中运行,但不确定您还有哪些代码需要它。在</p>