擅长:python、mysql、java
<p>如果使用简单的ThreadPoolExecutor可以实现同样的效果,则不需要复杂的异步编码:</p>
<pre><code>from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=1) as tp:
for bigLogFile in bigLogFileFolder:
with open(bigLogFile) as bigLog:
data = bigLog.read()
tp.submit(process_data, data)
</code></pre>
<p>由于ThreadPoolExecutor在幕后使用一个队列,所以处理顺序将保留到<code>max_workers=1</code>的时间。在</p>
<p>另外,如果你有足够的内存来保存所有/大多数文件,它也能正常工作。如果是内存受限的,则必须等待ThreadPoolExecutor完成一些任务。在</p>