我是php的新手。我已经了解到无法通过Web服务器从apache启动它,所以我已经使用laravel命令从命令行运行它但是当我调用它时我收到此错误 开始() 线程的方法
@SerializedName("_id")
private Id id;
但是每当我调用run方法时错误都会消失,这不是可行的方法。
我真的很感激我能得到的任何帮助。
我的命令的句柄方法如此
PHP Fatal error: Uncaught Exception: Serialization of 'Closure' is not allowed in [no active file]:0
Stack trace:
#0 {main}
thrown in [no active file] on line 0
我的ThreadClass就是这个
public function handle()
{
$threads = ["Thread One", "Thread Two"];
$threadList=[];
foreach ($threads as &$thread){
//$id++;
$this->info($thread);
$testThread = new TestThread($thread);
$testThread->start();
$threadList[] = $testThread;
}
foreach ($threadList as $thread){
$this->info("waiting for thread ". $thread->getThreadID());
$thread->join();
$this->info($thread->getThreadID()."done ");
//echo $thread->getThreadID().'<br/>';
}
}
答案 0 :(得分:4)
我通过在start函数中添加以下参数找到了我的问题的解决方案
$testThread->start(PTHREADS_INHERIT_ALL ^ PTHREADS_INHERIT_CLASSES);
这个问题Fatal error while starting threads within symfony command
提供