php почему я получаю Класс 'Thread' не найден

Я использую php версии 7 и определил класс, который расширяет класс Thread, но когда я запускаю мою программу, которая выдает мне класс "Thread", ошибка не найдена. Я произвел поиск и обнаружил, что должен скопировать pthreadVC2.dll в папках apache и system32 и копируй php_pthreads.dll в php/ext и system32 папки и добавить extension=php_pthreads.dll в php.ini Я сделал все эти работы, но я снова получаю эту ошибку.php_pthreads.dll а также pthreadVC2.dll версия 14

<?php
class exampleThread extends Thread
{
    var  $Mobile;
    var  $code;
    public function __construct($Mobile, $code)
    {
        $this->Mobile = $Mobile;
        $this->code = $code;
    }

    public function run()
    {

    }
};
?>

2 ответа

Решение

Расширение pthreads нельзя использовать в среде веб-сервера. Это доступно только в CLI.

Что бы вы ни пытались сделать, вам нужно придумать другой способ сделать это.

Как указано в ответе duskwuff, расширение pthreads нельзя использовать в среде веб-сервера.

Мы играли около 1 недели и, к сожалению, должны были понять, что запуск его в версии CLI приводит к слишком большому количеству проблем, когда он становится слишком сложным -> мы остановились и удалили pthreads из нашей среды.

Что я могу вам предложить:
В связи с тем, что нам по-прежнему нужна многопоточная функциональность, мы проверяли несколько методов и в итоге использовали функции curl multi.

С помощью функции curl multi вы получаете полное многопоточное выполнение - и особенно в нашем случае - когда у вас много ядер [у нас есть 48], вы действительно можете использовать их все, когда создаете свои задачи с помощью curl...

Документация по PHP exl multi exec очень плохая. Я ссылаюсь на эту ветку, где вы получаете дополнительную информацию.

Другие вопросы по тегам