PHP не поддерживает параллелизм в ядре. Но вы можете имитировать подобное поведение со следующими методами.
1. fsockopen() и ignore_user_abort ('1')
Вы можете создать сокет-соединение с другим скриптом, который проходит затем в фоновом режиме. См. Следующие два сценария. Основной скрипт создает соединение сокета с суб-скриптом и немедленно закрывает его. Суб-скрипт выполняется до тех пор, пока все задачи не будут завершены. Это происходит из-за ини значение "ignore_user_abort" установлен в 1.
main.php
<?php
$start = microtime(true);
$host = 'localhost';
$target = '/sub.php';
$fp = fsockopen($host, 80);
$request = "GET $target HTTP/1.1\r\n";
$request .= "Host: $host\r\n";
$request .= "Connection: Close\r\n\r\n";
fwrite($fp, $request);
fclose($fp);
file_put_contents("main", "Script runs " . (microtime(true) - $start) . " seconds");
sub.php
<?php
$start = microtime(true);
ignore_user_abort("1");
sleep(5);
file_put_contents("sub", "Script runs " . (microtime(true) - $start) . " seconds");
2. Запустить скрипт над командная строка в фоновом режиме
Вы можете начать сценарий через unix/linu x или Windows в фоновом режиме. Следующий пример приведен для командной строки unix/linux. Чтобы запустить скрипт через командную строку Windows, см. Следующий комментарий на сайте PHP.net. http://www.php.net/manual/en/function.exec.php#110131
main.php
<?php
$start = microtime(true);
pclose(popen("/usr/bin/php " . __DIR__ . "/sub.php " . __DIR__ . "//sub.log 2>&1 &", 'r'));
file_put_contents("main", "Script runs " . (microtime(true) - $start) . " seconds");
sub.php
<?php
$start = microtime(true);
sleep(5);
file_put_contents("sub", "Script runs " . (microtime(true) - $start) . " seconds");
Следующая расширение предоставляет реальный параллелизм в PHP:
Pthreads является API ориентированного на объект API, который позволяет многопоточность пользовательской земли в PHP. Он включает в себя все инструменты, необходимые для создания многопоточных приложений, ориентированных на Интернет или консоль. Приложения PHP могут создавать, читать, писать, исполнять и синхронизировать с Threads, Workers и Stackables.
http://www.php.net/manual/en/book.pthreads.php
различные подходы возможны. Используете ли вы веб-интерфейс для вызова каждого скрипта php или выполняете его с помощью командной строки? – Sebas
Я вызываю скрипт через веб-интерфейс, поэтому могу ввести некоторые переменные. – EricImprint
Вы пробовали 'объяснять' по этим запросам? Может ли решение быть таким же простым, как добавление некоторых индексов? См.: Https://dev.mysql.com/doc/refman/5.5/ru/explain.html – Greg