| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Подскажите по тредам |
| Автор: Suppir 28.4.2011, 15:28 | ||
Есть скрипт:
Он запускает два раза утилиту dump.exe с разными параметрами. Утилита работает два раза по часу (т.е. два часа). На компьютере 2 ядра, работает только 50%. Как запустить эти два процесса одновременно? |
| Автор: DurRandir 28.4.2011, 16:15 |
| fork+exec, можно ещё сделать setsid, если родителю не надо ждать детей. Если надо, причём заблокироваться на время ожидания, то вызвать в исходном процессе waitpid 2 раза. |
| Автор: OutlawZ 28.4.2011, 16:23 | ||
| Используйте use Threads; Что то в этом роде.
Для более больших подробностей смотрите perldoc Threads |
| Автор: Suppir 28.4.2011, 16:23 |
| А как реализовать самым простым способом? Следить за окончанием работы не нужно. Всего лишь нужно тупо создать два процесса: system (".\\tools\\dump.exe " .$path. " Force > priority.dump") и system (".\\tools\\dump.exe -s " .$path. " PublishedIn 0 > publishedin.dump") Добавлено через 29 секунд OutlawZ, спасибо, то что нужно! |
| Автор: Pfailed 28.4.2011, 17:20 | ||||||
Это всё работает в windows? Добавлено через 4 минуты и 4 секунды
threads он, а не Threads. Это спасибо windows за регистронезависимость в именах файлов, а в более нормальной системе такой трюк уже не удастся. |
| Автор: OutlawZ 28.4.2011, 17:34 | ||
Может дело в Active Perl ? |
| Автор: Pfailed 28.4.2011, 18:06 | ||||||
Не встречал модуля HTTP::Template. HTML::Template возможно. Но это всё равно, в windows можно написать хоть
Другое дело, что при использовании, такое уже не пройдет и нужно указывать верное имя
|