擅长:python、mysql、java
<p>使用下面的2python脚本。在</p>
<ul>
<li><p><em>硕士.py</em>将使用<code>Popen</code>启动一个新进程,并将启动一个观察线程,该线程将在<code>3.0</code>秒后终止该进程。</p></li>
<li><p>如果写入<code>stdout</code>的数据中没有新行,则从属服务器必须调用flush方法(在windows上,<code>'\n'</code>也会导致刷新)。</p></li>
</ul>
<blockquote>
<p>Be careful the <code>time</code> module is not a high precision timer.</p>
<p>The load time of the process can be longer than 3.0 seconds in extreme cases (reading an executable from a flash drive having USB 1.0)</p>
</blockquote>
<p><strong>硕士.py</strong></p>
<pre><code>import subprocess, threading, time
def watcher(proc, delay):
time.sleep(delay)
proc.kill()
proc = subprocess.Popen('python Slave.py', stdout = subprocess.PIPE)
threading.Thread(target = watcher, args = (proc, 3.0)).start()
data = bytearray()
while proc:
chunk = proc.stdout.read(1)
if not chunk:
break
data.extend(chunk)
print(data)
</code></pre>
<p><strong>从属.py</strong></p>
^{pr2}$