Я пытаюсь создать многопоточное приложение PHP прямо сейчас. Я прочитал много статей, в которых объясняется, как создавать многопоточность. Все эти примеры основаны на погружении процессов в разные рабочие файлы PHP. Actualy это также то, что я пытаюсь сделать, но есть проблема :)Многопоточность в PHP
Есть слишком много рабочих мест, даже разделить 30 секунд (это ограничение времени выполнения)
Мы используют многосерверную среду в локальной сети для завершения процессов, поскольку процессы не связаны друг с другом или не разделяют одну и ту же память. Нам просто нужно их разжечь и позволить им работать в точное время. Каждый из процессов работает на 0,5 секунды, но у него есть возможность работать в течение 30 секунд.
Большинство примеров запускает PHP и ждет результатов. Но, к сожалению, в моей ситуации мне не нужно ожидать результата из потока. Мне просто нужно выполнить команду и записать результат в свою собственную базу данных.
Как я могу достичь, чтобы запустить phps и ждать, пока они будут работать на 10000 процессов?
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Я знаю, что PHP не имеет многопоточную функцию и не построен. Но мы должны создать способ его использования, например, мы можем отправить запрос на http://server1/dothis.php?jobid=5, но стандартные методы заставляют нас ждать результата. Если нам удастся отправить запрос на этот сервер, не дожидаясь результата, он решит нашу проблему, я думаю, или нам понадобится совершенно другой подход, такой как разделитель процессов с C++ или qt.
вы не можете создать многопоточное приложение PHP. php не поддерживает потоковую обработку. – user187291
Я не уверен в возможности вашей машины запускать 10000 одновременных потоков, но вам нужно рассмотреть адресное пространство, используемое вашими потоками. В Windows гранулярность распределения адресного пространства составляет 64 КБ, поэтому стек каждого потока занимает 64 Кбайт адресного пространства, даже если используется только 4 КБ. Таким образом, вы будете использовать пространство памяти 640 МБ для адресации в одиночку! – stillstanding
Когда я вижу, что кто-то пытается использовать PHP для многопоточности, мне приходит в голову старая «если все, что у вас есть, это хаммер» –