擅长:python、mysql、java
<p>以<a href="https://stackoverflow.com/a/8763471/190597">tito's answer</a>为基础,关于您的评论,您可以在<code>select.select</code>中使用超时:</p>
<pre><code> while (not self.isStopping):
ready, _, _ = select.select([p.stdout], [], [], 5.0)
# Don't process the last output if we are stopping
if (self.isStopping):
print 'Quitting, discarding last buffer:' + str(self.isStopping)
continue
if ready:
# do some p.stdout.readline() and process the data
self.ioprocess.terminate()
</code></pre>
<p>以上,超时为5.0秒。我认为这足够长,不足以打击系统,足够短,可以合理终止。改变以适合你的口味。你知道吗</p>