擅长:python、mysql、java
<p>下面的代码仍然使用“挂钟”时间,但可以替代使用主机系统时间命令。执行和计时被分成单独的线程,在执行任何处理之前可以停止计时器。在</p>
<pre><code>from multiprocessing import Event
import threading
import time
import subprocess
def timing(event):
print "timer starts"
ts = time.time()
event.wait()
te = time.time()
elapsed_time = te - ts
print "Elapsed Time " + str(elapsed_time)
def execution(event):
for i in range(0,1000):
p = subprocess.Popen("ls", stdout=subprocess.PIPE)
event.set()
if __name__ == '__main__':
event = Event()
e = threading.Thread(target=execution, args=(event,))
t = threading.Thread(target=timing, args=(event,))
t.start()
e.start()
while not event.is_set():
print "running..."
time.sleep(1)
</code></pre>
<p>这样可以得到以下输出:</p>
^{pr2}$
<p>或者您可以将接收“extprogram”的输出与处理输出分开。在</p>
<p>例如:</p>
<pre><code>ts = time.time()
p = subprocess.Popen("extprogram", stdout=subprocess.PIPE)
for line in p.stdout:
tempdata.append(line)
te = time.time()
elapsed_time = te - ts
for line in tempdata:
all_processed_data.append(process_output(line))
</code></pre>