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 очень плохая. Я ссылаюсь на эту ветку, где вы получаете дополнительную информацию.