Я пытаюсь установить многопоточную систему PHP на одном из своих серверов. После нескольких чтений кажется, что самое простое решение - использовать потоки Pthread с amphp\thread
реализация.
http://www.mullie.eu/parallel-processing-multi-tasking-php/
Итак, если я прав, шаги были следующие:
Когда я пытаюсь установить php-uv
, Я получаю ошибку на шаге:
make -C libuv CFLAGS=-fPIC
Поскольку каталога libuv нет в git, я думаю, что мне что-то не хватает ...
Тем не менее, я также установил php libevent, который может помочь, если я правильно понимаю amphp
ПРОЧТИ МЕНЯ.
amphp
с участием composer
как описано в документации. Но опять же, как я могу проверить, что установка прошла успешно?Затем, если я предполагаю, что все прошло хорошо, я могу установить amphp/thead
. Тот же вопрос к композитору, как я могу быть уверен, что все в порядке?
Затем я должен быть готов, поэтому я создаю test.php
файл с примером кода в amphp/thread
и конечно ... я получаю сообщение об ошибке Amp\Thread\Dispatcher
класс не найден. Конечно, я запускаю это в CLI.
Подводя итог, я получаю ошибку только при установке php-uv
что не кажется абсолютно необходимым для запуска класса. Так что я почти уверен, что где-то что-то упускаю, но не знаю что ...
Вам не нужно uv
ни libevent
, они не играют вместе с pthreads
.
Теперь есть стабильный выпуск для amphp/amp
, но amphp/thread
все еще нестабилен, он даже не обновлен до стабильной версии amp
все же.
Если во время установки вы не получите сообщение об ошибке, значит, все прошло успешно. Это типично для Linux, если сообщения нет, обычно все работает нормально.
Чтобы получить test.php
запущен и работает с composer
, вам необходимо включить автозагрузчик:
<?php
require __DIR__ . "/vendor/autoload.php";
// your code here...
Вы можете играть с
amphp/thread
, но будьте осторожны, API может измениться в любое время без предварительного уведомления.