Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Передача параметров в головной процесс |
Автор: kukich 13.5.2011, 15:59 |
Здравствуйте, Возникла задача : Головной процесс в цикле создает определённое количество дочерних процессов(с помощью fork). Каждый дочерний процесс берет информацию из массива ,обрабатывает и скидывает её головному процессу ,после чего умирает.А главный процесс создает еще один дочерний,который работает так же,как и предыдущий. В нете куча примеров,как можно обеспечит обмен информацией 2 процесса - главный и дочерний(с помощью pipe).А вот если дочерних несколько,как организовать передачу данных? |
Автор: arto 13.5.2011, 16:17 |
а что именно вызывает проблему? заведение массива пайпов? |
Автор: kukich 13.5.2011, 16:55 | ||
Ну вот я попытался организовать передачу данных через pipe для нескольких процессов:
Потомок принимает сообщение от первого дочернего процесса , после чего reader закрывается.дальше потомки пишут впустую.В этом и вопрос - как сделать так,чтобы главный процесс принимал данные со всех дочерних процессов? |
Автор: Pfailed 13.5.2011, 17:10 | ||
Скопировал из одного из проектов. Думаю смысл понятен.
|
Автор: kukich 13.5.2011, 18:21 |
Спасибо большое, поковыряю скриптик! |
Автор: kukich 16.5.2011, 16:55 |
Немного непонятно,зачем нужен хэш массив,не объясните? |
Автор: Pfailed 16.5.2011, 18:34 |
В него складывается pid каждого из дочерних процессов, чтобы затем дождаться завершения каждого из них. Можно обойтись без хеша и воспользоваться обработчиком сигнала CHLD. Добавлено через 9 минут и 10 секунд Хотя можно и без CHLD, тем же wait, только считать количество завершенных процессов относительно количества запущенных. Получается хеш здесь действительно никчему. |
Автор: kukich 18.5.2011, 17:01 |
Спасибо,всё стало ясно! |