Создание нескольких процессов из сценария командной строки PHP - PullRequest
3 голосов
/ 06 мая 2011

У меня есть система сборки, написанная на PHP. Это похоже на инструмент make , собирающий исходные файлы с зависимостями для компиляции и связывания их.

Для запуска G ++ используется функция system , например:

    system("g++ -c $file -o $out");

Отлично работает. Однако у меня многоядерный процессор, и я хотел бы использовать эти дополнительные ядра для ускорения процесса (например, make -j 8 ). Как я могу сделать это на PHP? Мне не нужно иметь многопоточность в PHP как таковую, мне просто нужно порождать несколько дочерних процессов и ждать их завершения.

1 Ответ

0 голосов
/ 06 мая 2011

Поскольку это обычно встроенная версия CLI для PHP, вы можете использовать pcntl_fork().Он дублирует текущий процесс PHP в дочерний процесс, который затем может работать отдельно от родительского процесса.

См. Пример на странице руководства.

(Вы также можете использовать PEAR System_Daemon, которая инкапсулирует эту функциональность, хотя для вашего случая это слишком много.)

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