Как правильно взаимодействовать с модулем подпроцесса использования процесса

Во втором файле HTML у вас нет элемента с классом trigger. Это причина вашей ошибки в консоли.

Включение ваших файлов JavaScript в конце body (как вы это делали в intex.html) также является хорошей практикой, чтобы убедиться, что JavaScript будет работать после загрузки всех элементов HTML.

11
задан rypel 22 May 2013 в 15:36
поделиться

1 ответ

Не соответствует 100% к Вашему примеру, но помогает понять базовую проблему: P Процесса запускается, ребенок C. Child C пишет, что что-то к его stdout. stdout C является каналом, который имеет 4 096 символьных буферов, и вывод короче, чем это. Теперь, C ожидает некоторого входа. Для C все прекрасно.

P ожидает вывода, который никогда не будет прибывать, потому что ОС не видит оснований для сбрасывания буфера вывода C (с такими маленькими данными в нем). С тех пор P никогда не получает вывод C, он ничего никогда не будет писать в C, таким образом, C подвесит ожидание входа от P.

Зафиксируйте: Используйте сброс после каждой записи к каналу, вынуждающему ОС отправить данные теперь.

В Вашем случае, добавляя proc.stdin.flush() в основном цикле с условием продолжения и a sys.stdout.flush() в дочернем цикле после того, как печать должна решить Вашу проблему.

Необходимо также рассмотреть перемещение кода, который читает из другого процесса в поток. Идея здесь состоит в том, что Вы никогда не можете знать, когда данные прибудут, и использование потока помогает Вам понять эти проблемы при написании кода, который обрабатывает результаты.

В этом месте я хотел показать Вам новую документацию Python 2.6, но она не объясняет проблему сброса, также :( О, хорошо...

17
ответ дан 3 December 2019 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: