Примеры кодов для многопоточных моделей Perl - PullRequest
6 голосов
/ 28 февраля 2011

Учебник по потокам Perl здесь: Однако очень мало информации дается о многопоточных моделях программ: Boss / Workers, Work Crew, Pipeline. У меня нет идей о том, как реализовать эти модели.

Не могли бы вы дать мне несколько примеров рабочих кодов на них?

Обновление:
Спасибо Ojosilva за то, что дал некоторые ссылки, я гуглил, прежде чем задавать эти вопросы, я пришел к двум из них. Первый пример старый и не хороший. Два оставшихся в порядке. Но некоторые примеры «реального мира», включающие ввод / вывод файла и общий доступ к переменным, будут великолепны.

Например, я специалист по компьютерам, работающий на Бога, который любит Perl. У него есть адресные книги стран мира в текстовых файлах, разделенных табуляцией, многие из них будут составлять несколько ГБ. Он хочет, чтобы я проанализировал произвольные комбинации этих текстовых файлов (например, addressbook_usa.txt, addressbook_russia.txt, addressbook_india.txt), чтобы сделать некоторую статистику (например, о возрасте, поле, распределении мира). Он хочет, чтобы я показал ему магию Perl, которая делает эту работу не только выполненной, но и DONE FAST, потому что он не хочет тратить свою мощную многоядерную рабочую станцию ​​с большим количеством оперативной памяти и дискового пространства.

Кстати, я также посмотрел на Thread :: Pool и Thread :: Pool :: Простые модули на cpan. Первый довольно многообещающий, но я не смог установить его на свою рабочую станцию. Последнее едва ли просто без примеров кодов. И снова, моя цель - найти кое-что, чтобы узнать о том, как реализовать многопоточный Perl, а не просто прыгнуть прямо вверх.

Ответы [ 2 ]

5 голосов
/ 01 марта 2011

Вот пример Рабочий экипаж

Пример босса / рабочего можно найти здесь

И конвейер один

Не лучшие примеры, но могут помочь вам начать.

0 голосов
/ 01 марта 2011

Это большая база кода, но для более сложного реального примера: Padre (IDE) имеет довольно сложную настройку объединения рабочих.

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