Я пытаюсь отправить информацию, извлеченную из строк большого файла, процессу, работающему на каком-то сервере.
Чтобы ускорить это, я хотел бы сделать это с несколькими потоками параллельно.
Используя бэкпорт Python 2.7 для concurrent.futures, я попробовал это:
f = open("big_file")
with ThreadPoolExecutor(max_workers=4) as e:
for line in f:
e.submit(send_line_function, line)
f.close()
Однако это проблематично, потому что все фьючерсы отправляются мгновенно, так что моей машине не хватает памяти, потому что в память загружается весь файл.
Мой вопрос в том, есть ли простой способ представить новое будущее только тогда, когда доступен свободный работник.
os.sendfile
для отправки перевода файл через сокет. - person Bakuriu   schedule 12.09.2013