труба Python (стандартный) слишком быстро - PullRequest
0 голосов
/ 21 февраля 2012

У меня следующий вопрос: рассмотрите возможность передачи данных через конвейер в скрипт Python и обработки их там построчно.Скорость строк текста, поступающих в канал, очень высокая (sys.stdin.readline), и что, если строки текста появляются слишком быстро для сценария, что происходит потом?Будет ли stdin читать строки по порядку или самые новые?

1 Ответ

3 голосов
/ 21 февраля 2012

Канал управляется операционной системой: один процесс записывает в канал, ОС буферизует то, что было записано, и передает его процессу чтения.Если буфер канала заполнен, последующие операции записи процесса записи будут просто блокироваться до тех пор, пока в буфере снова не будет достаточно места.

Короче говоря, ОС гарантирует, что ничего не потеряно, и вы нене беспокойся об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...