大きなファイルの行から抽出された情報を、サーバーで実行されているプロセスに送信しようとしています。
これを高速化するために、いくつかのスレッドを並行して実行したいと考えています。
私はこれを試したconcurrent.futuresのPython 2.7バックポートを使用して:
f = open("big_file")
with ThreadPoolExecutor(max_workers=4) as e:
for line in f:
e.submit(send_line_function, line)
f.close()
ただし、これには問題があります。すべての先物が即座に送信され、完全なファイルがメモリにロードされるため、マシンのメモリが不足するためです。
私の質問は、無料のワーカーが利用可能な場合にのみ新しい未来を提出する簡単な方法があるかどうかです.