PHP вызывает сразу несколько функций?

Я новичок в php и пытаюсь запустить три функции параллельно. У меня есть код, похожий на следующий:

Call function1(…….);  //all these function are located in separate host server
Call function2(…….);  
Call function3(…….);

Все вышеперечисленные функции будут работать в течение 5 или более минут. Поэтому мне действительно нужно вызывать их параллельно, иначе моя программа будет работать минут 15 и более. любая помощь будет принята с благодарностью.


person Justin k    schedule 04.06.2013    source источник
comment
PHP не является языком с поддержкой многопоточности / распараллеливания. Запустите 3 отдельных сценария PHP, каждый из которых вызывает одну из этих функций.   -  person Marc B    schedule 05.06.2013
comment
Аналогичные stackoverflow.com/questions/9684290/ stackoverflow.com/questions/2998314/   -  person PiLHA    schedule 05.06.2013
comment
Не зная, какие именно «функции» в вашем примере, трудно что-либо рекомендовать. В некоторых случаях вам может потребоваться поискать что-то вроде Gearman, в некоторых есть Возможно, это уже какая-то техника «объединения», реализованная в ваших конкретных торговых инструментах.   -  person raina77ow    schedule 05.06.2013
comment
Для этого вопроса слишком много дубликатов. Сначала исследуйте, спросите позже.   -  person Maxim Kumpan    schedule 05.06.2013


Ответы (1)


Вы можете использовать pThread, это хорошее место для начала:

Пример

$ts = array();
$ts[] = new Call("function1");
$ts[] = new Call("function2");
$ts[] = new Call("function3");

foreach($ts as $t) {
    $t->start();
}

foreach($ts as $t) {
    $t->join();
}

Класс Simple Thread

class Call extends Thread {

    function __construct($func) {
        $this->func = $func;
    }

    function run() {
        call_user_func($this->func);
    }
}
person Baba    schedule 04.06.2013
comment
Примечание. pThread является экспериментальным. - person Frank Farmer; 05.06.2013
comment
Уже какое-то время использую его в продакшене .... - person Baba; 05.06.2013
comment
@Baba Большое спасибо за подробные объяснения. Я пытался установить pthread на свой компьютер, но мой php-код продолжает говорить Fatal error: Class 'Thread' not found. Подскажите, пожалуйста, что мне установить, чтобы запустить этот pthread. Буду очень признателен за вашу помощь - person Justin k; 01.07.2013